我们有一个相当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