Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法测量工作在核心之间的分布情况?_C#_.net_Performance_Parallel Processing_Task Parallel Library - Fatal编程技术网

C# 有没有办法测量工作在核心之间的分布情况?

C# 有没有办法测量工作在核心之间的分布情况?,c#,.net,performance,parallel-processing,task-parallel-library,C#,.net,Performance,Parallel Processing,Task Parallel Library,我想知道,有没有可靠的方法来观察(或衡量)我的应用程序的工作分配到服务器核心的情况?我想到的唯一(非常不科学)选项是: “注视”任务管理器中的CPU图形 让应用程序在完成每项工作时不断向控制台写出Thread.CurrentThread.ManagedThreadId 当然还有更好的选择吗 背景: 我的应用程序监听传入的数据包,在内存中做一些工作,并将数据写入数据库。 我的目标平台是一台有四个内核的Windows服务器。我的应用程序的第一个版本显然使用了一个核心,而其他三个核心大部分是空闲的。我

我想知道,有没有可靠的方法来观察(或衡量)我的应用程序的工作分配到服务器核心的情况?我想到的唯一(非常不科学)选项是:

  • “注视”任务管理器中的CPU图形
  • 让应用程序在完成每项工作时不断向控制台写出
    Thread.CurrentThread.ManagedThreadId
  • 当然还有更好的选择吗

    背景: 我的应用程序监听传入的数据包,在内存中做一些工作,并将数据写入数据库。 我的目标平台是一台有四个内核的Windows服务器。我的应用程序的第一个版本显然使用了一个核心,而其他三个核心大部分是空闲的。我使用
    Task.Factory.StartNew()
    部署了第二个版本,试图在每次收到数据包时将工作分配给其他内核。现在看起来所有的核心都比我第一个应用程序中的单核要忙

    并发可视化工具使您能够查看 多线程应用程序与自身、硬件和 操作系统和计算机上的其他进程。这些观点 提供图形、表格和文本数据,显示时间 程序中的线程与系统之间的关系 全部


    @RobertHarvey-太棒了!非常感谢。如果你想把它作为一个答案,我很乐意接受。