我正在分析一些.net桌面应用程序。我找到了代码:
if (System.Environment.ProcessorCount > 1)
{
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High;
Process.GetCurrentProcess().ProcessorAffinity = new IntPtr(2);
}
else
{
Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal;
}
Process.GetCurrentProcess().PriorityBoostEnabled = true;
我在具有多核(4)处理器的机器上启动了此应用程序:
我们可以看到应用程序仅加载第二个核心(请参阅代码),但同时我在计算机上无法执行任何操作,即使3个核心处于空闲状态。
什么是ha ?? 使用特定核心运行应用程序是否有意义?
ADDED
还有其他应用程序(2)可以保留其余的处理器时间。它具有高优先级,我无法改变它的设置。所以这个应用程序应该与那个应用程序竞争。
答案 0 :(得分:0)
您的应用程序是否有主窗口?它在前景吗?如果是的话,难怪PriorityBoostEnabled=true
将使您的应用程序的优先级更高。