我試圖在擁有16個總物理處理器核心,32個邏輯的計算機上的進程上設置處理器關聯。之前,我們使用的是一個int,但是當您有32個邏輯核心時,它會溢出。在32+邏輯核心的系統上使用Process.ProcessorAffinity
在設置處理器關聯性仍然有效時,將使用long而不是int嗎?
請參閱下面的代碼。
try
{
string pathToExe = GetPathToExe(jobType);
long processorAffinity = DetermineProcessorAffinity();
Process jobProcess = Process.Start(pathToExe, jobId.ToString());
if (jobProcess != null)
{
jobProcess.ProcessorAffinity = new IntPtr(processorAffinity);
}
}
你用長測試過嗎? – 2011-06-03 14:40:52