我正在尝试在具有 16 个物理处理器内核、32 个逻辑处理器的机器上的进程上设置处理器关联。之前,我们使用的是 int 但是当你有 32 个逻辑核心时它会溢出。

在设置处理器关联时使用 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 );
    }

 }

最佳答案

来自 IntPtr documentation :



换句话说:它应该在 64 位系统上工作,但不能在 32 位系统上工作。我想这对你来说不是问题。

关于c# - 在具有 32 多个逻辑核心的系统上使用 Process.ProcessorAffinity,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6228510/

10-11 21:33