Запустите ServicedComponent с более низким приоритетом - PullRequest
2 голосов
/ 22 марта 2011

У нас есть ServicedComponent (приложение сервера COM +), которое сильно загружает процессор.Он вызывается из службы Windows, и время, необходимое для его выполнения, не очень важно.

Однако мне нужно, чтобы он работал с более низким приоритетом.Как я могу изменить его приоритет?

Ответы [ 2 ]

0 голосов
/ 06 апреля 2011

Я предполагаю, что ваш компонент работает в серверном приложении (вне процесса из вашей службы Windows).

Если это так, вы можете установить приоритет процесса COM + равным BelowNormal в конструкторе класса:

public class Class1 : ServicedComponent
{
    public Class1()
    {
        System.Diagnostics.Process process = 
            System.Diagnostics.Process.GetCurrentProcess();

        if (process.PriorityClass != 
            System.Diagnostics.ProcessPriorityClass.BelowNormal)
        {
            process.PriorityClass = 
                System.Diagnostics.ProcessPriorityClass.BelowNormal;
        }
    }
}

Если я запускаю простой тест, приоритет процесса dllhost.exe устанавливается на BelowNormal.

0 голосов
/ 22 марта 2011

Я думаю, вы должны установить низкий приоритет службы Windows.

Так что, пожалуйста, посмотрите на ссылку ниже.Надеюсь, это поможет.

http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/0799ff95-3596-40e0-9fd1-c79b4ffab731/

...