2

我们有一个ServicedComponent(COM+ 服务器应用程序)非常占用 CPU。它是从 Windows 服务调用的,完成它所需的时间并不是很重要。

但是,我确实需要它以较低的优先级运行。我怎样才能改变它的优先级?

4

2 回答 2

1

我认为您必须将 Windows 服务优先级设置为低。

因此,请查看以下链接。希望有帮助。

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

于 2011-03-22T13:55:51.407 回答
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 进程优先级设置为低于正常。

于 2011-04-06T17:07:14.360 回答