在C#中,如何查找执行线程的处理器?
这不一定是个常数 - 线程在其生命周期内可以被调度到不同的核心上。如果需要,您可以设置亲和性掩码来将特定的线程绑定到特定的CPU。有关 .Net 中可以执行的更多详细信息,请参阅 Thread.BeginThreadAffinity API 文档。
在我看来,.NET线程可能没有绑定到任何本地线程。.NET运行时可以随时将.NET线程移动到不同的本地线程和处理器。
我不确定你是否可以这样做。你可以获取进程亲和性掩码(GetProcessAffinityMask),并设置相同的掩码(SetProcessAffinityMask)。你也可以设置线程亲和性掩码,但我的理解是这样做会限制线程只能在你设置的亲和性掩码之一的处理器上运行。
如果你要深入研究在特定核心上运行的特定线程,那么你可能需要设置进程亲和性掩码来定义代码可运行的核心集合,然后你进程中的线程将在选定的核心之间浮动。