首页 > 后端开发 > C++ > 如何准确跟踪 .NET 中的进程执行时间?

如何准确跟踪 .NET 中的进程执行时间?

Barbara Streisand
发布: 2025-01-21 00:42:09
原创
255 人浏览过

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

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板