Prozesslaufzeit mit erweiterten .NET-Techniken verfolgen
Die einfache Verwendung von Process.GetProcessesByName
bietet nur eine momentane Ansicht der aktiven Prozesse; Es reicht nicht aus, die Ausführungsdauer eines Prozesses über mehrere Instanzen hinweg zu verfolgen. Es ist eine robustere Lösung erforderlich.
Nutzung von WMI für eine genaue Prozessüberwachung
Windows Management Instrumentation (WMI) bietet einen leistungsstarken Mechanismus zur detaillierten Überwachung von Systemereignissen, einschließlich der genauen Start- und Endzeiten von Prozessen. Der folgende C#-Code demonstriert die Anwendung von WMI für diesen Zweck:
<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>
Das Ausführen dieses Codes mit Administratorrechten ermöglicht die Echtzeitüberwachung von Prozesslebenszyklusereignissen. Dies ermöglicht eine äußerst genaue Messung der Ausführungszeit für jeden Prozess über mehrere Ausführungen hinweg. Bedenken Sie, dass eine intensive Überwachung die Systemleistung beeinträchtigen kann.
Das obige ist der detaillierte Inhalt vonWie kann ich die Prozessausführungszeit in .NET genau verfolgen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!