如何在多核 机器上运行的 C sharp 代码中使用硬件线程?任何例子将不胜感激。
我希望在我机器的两个内核上并行运行两个线程。如果我用 C sharp 创建普通的软件线程,它们可能会在单核上运行。是否可以在两个内核上隐式并行运行这两个线程以获得更好的性能?
最佳答案
你可以看看“处理器亲和性”。
您可以使用 System.Diagnostics 命名空间强制进程在特定处理器上运行。 以下行将更改当前进程对处理器 1 和 2 的亲和性
System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)3;
Process.ProcessorAffinity 属性 获取或设置可安排此进程中的线程运行的处理器。
下表显示了双处理器系统的 ProcessorAffinity 值的选择。
Value Description
0 Not allowed
1 Use processor 1
2 Use processor 2
3 Use both processors 1 and 2
有关更多详细信息,请参阅以下 MSDN 引用--> http://msdn.microsoft.com/en-us/library/system.diagnostics.process.processoraffinity.aspx
关于c# - 如何在多核机器上运行的 C# dot net 代码中使用硬件线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2490711/