我們有一個相當CPU密集的ServicedComponent
(COM +服務器應用程序)。它是從Windows服務調用的,其完成所花費的時間不是很重要。使服務組件以較低的優先級運行
但是,我確實需要它以較低的優先級運行。我如何改變它的優先級?
我們有一個相當CPU密集的ServicedComponent
(COM +服務器應用程序)。它是從Windows服務調用的,其完成所花費的時間不是很重要。使服務組件以較低的優先級運行
但是,我確實需要它以較低的優先級運行。我如何改變它的優先級?
我假設你的組件是在服務器應用程序(從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 。
我認爲你必須將Windows服務優先級設置爲低。
請看下面的鏈接。希望有所幫助。
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/0799ff95-3596-40e0-9fd1-c79b4ffab731/
如何找到承載COM +應用程序的正確的'dllhost.exe'?或者你的意思是'dllhost.exe'將獲得與調用windows服務相同的優先級? – jgauffin 2011-03-22 14:02:01
@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