使用增强的 .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中文网其他相关文章!