使ServicedComponent以较低优先级运行

时间:2011-03-22 13:39:45

标签: c# com+ servicedcomponent

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

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

2 个答案:

答案 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。