Запустите ServicedComponent с более низким приоритетом

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

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

2 ответа

Решение

Я предполагаю, что ваш компонент работает в серверном приложении (вне процесса из вашей службы 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.

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

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

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

Другие вопросы по тегам