首頁 > 後端開發 > C++ > 如何準確追蹤 .NET 中的進程執行時間?

如何準確追蹤 .NET 中的進程執行時間?

Barbara Streisand
發布: 2025-01-21 00:42:09
原創
255 人瀏覽過

How Can I Accurately Track Process Execution Time in .NET?

使用增強的 .NET 技術追蹤進程運行時

簡單地使用Process.GetProcessesByName僅提供活動進程的瞬時視圖;它不足以追蹤跨多個實例的進程的執行持續時間。 需要一個更強大的解決方案。

利用 WMI 進行精確的進程監控

Windows Management Instrumentation (WMI) 為詳細的系統事件監控提供了強大的機制,包括進程的精確啟動和結束時間。以下 C# 程式碼示範了 WMI 為此目的的應用:

<code class="language-csharp">using System;
using System.Management;

public class ProcessMonitor
{
    public static void Main(string[] args)
    {
        // Watch for process start events
        using (ManagementEventWatcher startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")))
        {
            startWatch.EventArrived += StartWatch_EventArrived;
            startWatch.Start();

            // Watch for process stop events
            using (ManagementEventWatcher stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")))
            {
                stopWatch.EventArrived += StopWatch_EventArrived;
                stopWatch.Start();

                Console.WriteLine("Monitoring process starts and stops. Press any key to exit.");
                Console.ReadKey();
            }
        }
    }

    private static void StopWatch_EventArrived(object sender, EventArrivedEventArgs e)
    {
        Console.WriteLine($"Process stopped: {e.NewEvent.Properties["ProcessName"].Value}");
    }

    private static void StartWatch_EventArrived(object sender, EventArrivedEventArgs e)
    {
        Console.WriteLine($"Process started: {e.NewEvent.Properties["ProcessName"].Value}");
    }
}</code>
登入後複製

使用管理員權限執行此程式碼可以即時監控流程生命週期事件。 這為任何進程的多次執行提供了高度準確的執行時間測量。 請記住,密集監控可能會影響系統效能。

以上是如何準確追蹤 .NET 中的進程執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板