C# 如何查找Windows服务当前正在使用的内核数?

C# 如何查找Windows服务当前正在使用的内核数?,c#,multithreading,windows-services,task-parallel-library,threadpool,C#,Multithreading,Windows Services,Task Parallel Library,Threadpool,我创建了一个通过Windows服务运行的多线程应用程序。早些时候,我的系统中有2个内核,现在已经增加到6个。即使增加了内核的数量,我的应用程序的性能也没有得到优化 我在应用程序中尝试了线程和任务来实现多线程,但应用程序的性能并没有显著差异。 如何查找应用程序在系统中运行或正在使用的线程和内核的数量,以便知道是否正在使用我的所有内核?这取决于操作系统的调度程序。您的Windows服务不是计算机上运行的唯一服务。操作系统决定如何将CPU时间分配给所有需要运行的线程 如果你想让你的应用程序更“多核友好

我创建了一个通过Windows服务运行的多线程应用程序。早些时候,我的系统中有2个内核,现在已经增加到6个。即使增加了内核的数量,我的应用程序的性能也没有得到优化
我在应用程序中尝试了线程和任务来实现多线程,但应用程序的性能并没有显著差异。
如何查找应用程序在系统中运行或正在使用的线程和内核的数量,以便知道是否正在使用我的所有内核?

这取决于操作系统的调度程序。您的Windows服务不是计算机上运行的唯一服务。操作系统决定如何将CPU时间分配给所有需要运行的线程


如果你想让你的应用程序更“多核友好”,你需要分享更多关于它的细节和它的作用。

你要求的是比“我的应用程序的性能没有显著差异”更具体的东西。-首先,你确认过CPU是瓶颈吗?如果您的问题是I/O绑定的,则不管有多少个内核可供使用。Environment.ProcessorCount告诉您使用的是多少个内核,而不是多少个操作系统内核