在C#中,有什么方法可以获取正在执行线程的内核的cpu id(或内核编号)?我有一个四核处理器,我想知道在跨越一些线程时,它们分配了哪些内核?
我发现 System.Environment.ProcessorCount 给出了当前的 CPU 总数,但是有什么方法可以知道哪个特定的 CPU 实例正在执行给定的线程。
最佳答案
我不知道可以提供此功能的 native .NET 函数。但是如果您准备使用 P/Invoke 并且在 Windows 2003、Vista 或更高版本上运行,那么您可以调用 GetCurrentProcessorNumber .
当然,这只会为您提供在该特定时间片执行线程的 CPU(核心),下次调度线程时,它可能会在完全不同的核心上运行,即使操作系统会努力调度出于性能原因,同一核心上的线程。
关于c# - 在 C# 中获取给定线程的 cpu 号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179186/