c# - 如何在多核机器上运行的 C# dot net 代码中使用硬件线程?

标签 c# multithreading

如何在多核 机器上运行的 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/

相关文章:

c# - 从 C# 调用 C++/CLI(不带 out 参数)

c# - 进程退出问题线程未成功退出

c# - 管理线程列表

c - Pthread 参数

c# - 在csv文件的下一列中写入c#

c# - 错误映射 NHibernate 3.3

c# - RX Subject<T> 如何取消订阅

c# - 每 30 秒重复一次 ping

ios - NSFetchRequest 挂起

c++ - Boost::Asio with Main/Workers threads - 我可以在发布工作之前启动事件循环吗?