是否可以确定进程运行了多长时间

本文关键字:运行 长时间 进程 是否 | 更新日期: 2023-09-27 18:26:07

在C#中,是否可以获得正在运行的进程(不是服务进程,而是实际的应用程序)的列表,并获得应用程序启动的DateTime?或者TimeSpan,甚至是进程运行时间的整数?

是否可以确定进程运行了多长时间

Process.GetProcesses将检索正在运行的进程的列表。

每个Process都有一个StartTime属性,

获取关联进程的启动时间。

只需从DateTime.Now中减去它,就可以得到进程运行的时间。

static void Main(string[] args)
{
    var procs = Process.GetProcesses();
    foreach (var proc in procs) {
        TimeSpan runtime;
        try {
            runtime = DateTime.Now - proc.StartTime;
        }
        catch (Win32Exception ex) {
            // Ignore processes that give "access denied" error.
            if (ex.NativeErrorCode == 5)
                continue;   
            throw;
        }
        Console.WriteLine("{0}  {1}", proc, runtime);
    }
    Console.ReadLine();
}

您可以使用Process.StartTime和Process.EndTime.