Как ограничить использование ЦП, которое берет программа C#?

Я бы все же рекомендовал разобрать файл по строке и выбрать второе слово строки, где первое слово - version.

Однако, эта реализация ниже будет служить вашей цели в виде регулярных выражений. Регулярное выражение (version ) ([A-Z0-9.'/-]+) состоит из двух групп: первая будет содержать слово version, а вторая - номер версии. Итак, просто получите номер версии.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {

    public static void main(String[] args) {

        String gradleFileContent = "group 'com.shan.sample.gradle'\n" +
                "version '1.0-SNAPSHOT'\n" +
                "\n" +
                "apply plugin: 'java'\n" +
                "apply plugin: 'application'\n" +
                "apply plugin: 'maven'\n" +
                "\n" +
                "sourceCompatibility = 1.8\n" +
                "\n" +
                "\n" +
                "mainClassName = 'com.shan.sample.gradle.SampleProgram'\n" +
                "\n" +
                "dependencies {\n" +
                "    testCompile group: 'junit', name: 'junit', version: '4.12'\n" +
                "}\n";

        Pattern p = Pattern.compile("(version )([A-Z0-9.'/-]+)");
        Matcher m = p.matcher(gradleFileContent);

        if (m.find()) {
            System.out.println(m.group(2));
        }
    }
}
11
задан netadictos 30 October 2008 в 18:15
поделиться

3 ответа

Я не знаю, можно ли сделать это, но можно изменить приоритет потока выполняющегося потока через свойство Priority. Вы установили бы это:

Thread.CurrentThread.Priority = ThreadPriority.Lowest;

Кроме того, я не думаю, что Вы действительно хотите ограничить его. Если бы машина в других отношениях неактивна, Вы хотели бы, чтобы она начала действовать на с задачей, правильно? ThreadPriority помогает передать это к планировщику.

16
ответ дан 3 December 2019 в 07:40
поделиться

Можно замедлить цикл вызывающим потоком. Сон (миллисекунды) в цикле. Это возвращает ЦП планировщику.

Но 'потребление слишком большого количества ЦП' заставляет меня думать, что у Вас могли бы быть более фундаментальные проблемы. Этот поток опрашивает и ожидает чего-то еще? Если так, необходимо рассмотреть использование Событий или некоторого другого основанного на ядре сигнального механизма.

0
ответ дан 3 December 2019 в 07:40
поделиться

Я предполагаю, что необходимо запросить некоторый API ОС для обнаружения, сколько из ЦП Вы потребление и принимает решения регулировки (как Поток. Сон) от этого на.

0
ответ дан 3 December 2019 в 07:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: