使 ServicedComponent 以较低优先级运行

发布于 2024-10-25 18:31:18 字数 144 浏览 3 评论 0原文

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

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

We have a ServicedComponent (COM+ server application) which is quite CPU intensive. It's called from a Windows Service and the amount of time it takes for it to complete is not very important.

However, I do need it to run with lower priority. How can I change it's priority?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

Oo萌小芽oO 2024-11-01 18:31:18

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

所以请查看下面的链接。希望有帮助。

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

I think you have to set the windows service priority to low.

So please look into the below link. Hope that helps.

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

就像说晚安 2024-11-01 18:31:18

我假设您的组件正在服务器应用程序中运行(在 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。

I'm assuming that your component is running in a Server Application (out of process from your windows service).

If that is the case you could set the priority of the COM+ process to be BelowNormal in the class constructor:

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;
        }
    }
}

If I run a simple test the dllhost.exe process priority is set to be BelowNormal.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文