iT邦幫忙

0

如何取得工作管理員中處理程序的每支程式的CPU%值

  • 分享至 

  • xImage

想要請問如何取得工作管理員中處理程序的每支程式的CPU%值,不是取工作管理員詳細資料中的CPU%值哦
我用C#開發,用

ManagementObjectSearcher searcher = new ManagementObjectSearcher($"root\\CIMV2", "SELECT * FROM Win32_PerfFormattedData_PerfProc_Process ");)

foreach (ManagementObject obj in searcher.Get())
{
    ViewCPU = Math.Round((Convert.ToDouble($"{Convert.ToInt64(obj["PercentProcessorTime"]):n0}") / Environment.ProcessorCount), 2); //->都取到作管理員詳細資料中的CPU%值(與工作管理員中處理程序的每支程式的CPU%值落差蠻大的)
}

以上問題再請大大們幫忙

謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
Gary
iT邦好手 1 級 ‧ 2022-01-23 15:58:12

以下兩種方式提供給您參考>>

VS2022分析CPU測量應用程式效能
https://docs.microsoft.com/zh-tw/visualstudio/profiling/beginners-guide-to-performance-profiling?view=vs-2022

評估用 .NET 程式自幹。經爬文,Process.GetProcesses() 可取得系統所有執行中程序,而 C# 抓 CPU% 及記憶體用量多半是透過 .NET PerformanceCounter 類別取得(延伸閱讀:程式範例-使用 C# 查詢 CPU 與記憶體使用狀況),抓 Process 執行身分則可靠 WMI 的 GetOwner(),所有的資訊都有管道可取。
https://blog.darkthread.net/blog/get-task-manager-list-with-csharp/

羅喉 iT邦新手 5 級 ‧ 2022-01-24 08:34:48 檢舉

HI Gary

謝謝你提供的資訊,第二個網頁我有參考過,但跑出來的是工作管理員詳細資料中的CPU%值,而不是工作管理員中處理程序的每支程式的CPU%值,而我想要的是工作管理員中處理程序的每支程式的CPU%值

Gary iT邦好手 1 級 ‧ 2022-01-24 09:52:54 檢舉
羅喉 iT邦新手 5 級 ‧ 2022-01-28 10:00:47 檢舉

謝謝...我沒有看過這篇..感謝提供

我要發表回答

立即登入回答