Запустите 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/