如何在C#中找到运行我的线程的处理器?

时间:2010-02-26 09:57:13

标签: c# multithreading processor

如何在C#中找到运行我的线程的处理器?

3 个答案:

答案 0 :(得分:4)

这不一定是常量 - 线程可以在其生命周期内安排到不同的内核上。如果需要,可以设置关联掩码以将特定线程绑定到特定CPU。有关在.Net中可以执行的操作的更多详细信息,请参阅API docs for Thread.BeginThreadAffinity

答案 1 :(得分:1)

恕我直言,.NET线程可能没有绑定到任何本机线程。 > NET运行时可以随时在不同的本机线程和处理器之间移动.NET线程。

答案 2 :(得分:1)

我不确定你能不能。您可以获取进程关联掩码(GetProcessAffinityMask),并设置相同的(SetProcessAffinityMask)。您也可以设置线程关联掩码,但我的理解是,这样做可以将线程限制为在已设置关联掩码的处理器之一上运行。

如果您正在深入研究在特定内核上运行的特定线程,您可能希望设置进程关联掩码以定义代码可以运行的核心集,然后进程中的线程将在所选内核之间浮动。