6

我有一个四核 CPU,可以说我总是想Thread在第二个核心上启动一个。

这在 C# 中可能吗?

4

3 回答 3

7

是的,看看ProcessorAffinity property线程。

于 2011-07-05T14:35:34.630 回答
7

是的。查看ProcessorAffinityWindows 或 Xbox SetProcessorAffinityXNA。

这也在另一个Stackoverflow 问题上进行了讨论。

于 2011-07-05T14:39:01.673 回答
2

流程集ProcessorAffinity

0x0001 = 0000 0001 - run on 1st core
                 ↑
0x0002 = 0000 0010 - run on 2nd core
                ↑
0x0003 = 0000 0011 - run on 1st and 2nd core
                ↑↑
0x0004 = 0000 0100 - run on 3rd core
               ↑

简单代码:

using (var process = Process.GetCurrentProcess())
{
  // only run on core number 1
  process.ProcessorAffinity = (IntPtr) 0x0001;
}
于 2017-08-25T10:01:24.250 回答