我们有一个ServicedComponent
(COM +服务器应用程序),它非常占用CPU。它是从Windows服务调用的,它完成所需的时间并不是很重要。
但是,我确实需要它以较低的优先级运行。我怎样才能改变它的优先级?
答案 0 :(得分:0)
我认为您必须将Windows服务优先级设置为低。
所以请查看以下链接。希望有所帮助。
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/0799ff95-3596-40e0-9fd1-c79b4ffab731/
答案 1 :(得分:0)
我假设您的组件在服务器应用程序中运行(从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。