Mengambil Masa Perlaksanaan Terakhir bagi Proses yang Ditamatkan menggunakan .NET
Kaedah .NET Process.GetProcessesByName
standard hanya mendapatkan semula proses yang sedang dijalankan. Untuk mendapatkan maklumat tentang proses yang ditamatkan, Instrumen Pengurusan Windows (WMI) menyediakan penyelesaian menggunakan kelas Win32_ProcessTrace
.
Contoh Ilustrasi:
Contoh ini menunjukkan cara membuat aplikasi konsol yang memantau proses bermula dan berhenti menggunakan WMI. Ingat untuk menambah rujukan kepada System.Management
dalam projek anda.
<code class="language-csharp">using System; using System.Management; public class ProcessMonitor { public static void Main(string[] args) { // Establish event watchers for process start and stop events. using (ManagementEventWatcher startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"))) { startWatch.EventArrived += StartWatch_EventArrived; startWatch.Start(); using (ManagementEventWatcher stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"))) { stopWatch.EventArrived += StopWatch_EventArrived; stopWatch.Start(); // Await user input to end monitoring. Console.WriteLine("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>
Langkah Pelaksanaan:
Nota Penting: Prestasi WMI untuk tugasan ini mungkin tidak optimum. Untuk senario berprestasi tinggi, kaedah alternatif harus diterokai.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Masa Larian Terakhir bagi Proses yang Ditamatkan dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!