使用增強的 .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中文網其他相關文章!