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

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

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

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

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

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