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