4

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

4

3 回答 3

4

这不一定是一个常数——线程可以在其生命周期内被调度到不同的内核上。如果需要,您可以设置关联掩码以将特定线程绑定到特定 CPU。请参阅Thread.BeginThreadAffinity 的 API 文档,以获取有关 .Net 中可以完成的操作的更多详细信息。

于 2010-02-26T10:01:27.220 回答
1

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

于 2010-02-26T10:00:35.957 回答
1

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

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

于 2010-02-26T10:03:59.297 回答