Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjejaki Masa Pelaksanaan Proses dengan Tepat dalam .NET?

Bagaimanakah Saya Boleh Menjejaki Masa Pelaksanaan Proses dengan Tepat dalam .NET?

Barbara Streisand
Barbara Streisandasal
2025-01-21 00:42:09257semak imbas

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

Masa Jalan Proses Penjejakan dengan Teknik .NET yang Dipertingkat

Hanya menggunakan Process.GetProcessesByName menawarkan hanya pandangan seketika proses aktif; ia tidak mencukupi untuk menjejaki tempoh pelaksanaan proses merentas berbilang kejadian. Penyelesaian yang lebih mantap diperlukan.

Memanfaatkan WMI untuk Pemantauan Proses yang Tepat

Instrumentasi Pengurusan Windows (WMI) menyediakan mekanisme yang berkuasa untuk pemantauan acara sistem terperinci, termasuk masa mula dan tamat proses yang tepat. Kod C# berikut menunjukkan aplikasi WMI untuk tujuan ini:

<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>

Melaksanakan kod ini dengan keistimewaan pentadbir membolehkan pemantauan masa nyata peristiwa kitaran hayat proses. Ini menyediakan pengukuran masa pelaksanaan yang sangat tepat untuk sebarang proses, merentasi pelbagai pelaksanaan. Perlu diingat bahawa pemantauan intensif mungkin memberi kesan kepada prestasi sistem.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjejaki Masa Pelaksanaan Proses dengan Tepat dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn