如何检查进程是否空闲? C#

正如标题所说。

我正在寻找一种方法来检查一个进程是否处于空闲状态,有明显的运行并且没有运行但是如何确定它是否没有做任何事情?

谢谢

这取决于你如何定义空闲。

但是,您可以创建某种启发式方法,以使用Process类将进程定义为空闲。 如果一个进程在一段时间内没有消耗超过thresholdMillis ,我将假设该进程是“空闲的”

Process p = Process.GetProcessById(proc_id); TimeSpan begin_cpu_time = p.TotalProcessorTime; //... wait a while p.Refresh(); TimeSpan end_cpu_time = p.TotalProcessorTime; if(end_cpu_time - begin_cpu_time < TimeSpan.FromMillis(thresholdMillis)) { //..process is idle } else { //..process is not idle } 

因此,根据您选择threshold_millis值的方式,您将获得不同的结果。 但这对于查看进程是否空闲应该是一个不错的启发式方法。

理想情况下,您可能会使用某种计时器来定期查询和更新进程的“空闲”。

你在寻找像GetLastInputInfo这样的东西吗?