Heim > Backend-Entwicklung > C++ > Wie kann ich die Prozessausführungszeit in .NET genau verfolgen?

Wie kann ich die Prozessausführungszeit in .NET genau verfolgen?

Barbara Streisand
Freigeben: 2025-01-21 00:42:09
Original
254 Leute haben es durchsucht

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

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage