2011-03-22 67 views
2

我们有一个相当CPU密集的ServicedComponent(COM +服务器应用程序)。它是从Windows服务调用的,其完成所花费的时间不是很重要。使服务组件以较低的优先级运行

但是,我确实需要它以较低的优先级运行。我如何改变它的优先级?

回答

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 。

0

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

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

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

+0

如何找到承载COM +应用程序的正确的'dllhost.exe'?或者你的意思是'dllhost.exe'将获得与调用windows服务相同的优先级? – jgauffin 2011-03-22 14:02:01

+0

@jgauffin,检查dllhost.exe的链接。 http://www.jasonsamuel.com/2010/01/13/how-to-tell-which-com-application-belongs-to-what-dllhost-exe-in-iis/ – Nirmal 2011-03-22 14:08:09