2011-03-22 78 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

相關問題