如何检查进程是否空闲?C#
正如标题所说 我正在寻找一种方法来检查一个进程是否空闲,有明显的运行和未运行,但如何确定它是否没有做任何事情如何检查进程是否空闲?C#,c#,process,C#,Process,正如标题所说 我正在寻找一种方法来检查一个进程是否空闲,有明显的运行和未运行,但如何确定它是否没有做任何事情 谢谢您正在寻找类似的东西吗?您正在寻找类似的东西吗?这取决于您如何定义空闲 但是,您可以创建某种启发式方法,使用process类将流程定义为空闲。如果某个进程在某段时间内的消耗量没有超过thresholdMillis,我将假定该进程是“空闲”的 Process p = Process.GetProcessById(proc_id); TimeSpan begin_cpu_time = p
谢谢您正在寻找类似的东西吗?您正在寻找类似的东西吗?这取决于您如何定义空闲 但是,您可以创建某种启发式方法,使用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
}
processp=Process.GetProcessById(proc_id);
TimeSpan begin\u cpu\u time=p.TotalProcessorTime;
//... 等一会儿
p、 刷新();
TimeSpan end\u cpu\u time=p.TotalProcessorTime;
if(结束\u cpu\u时间-开始\u cpu\u时间<时间跨度从毫秒(阈值毫秒))
{
//…进程处于空闲状态
}
其他的
{
//…进程不是空闲的
}
因此,根据您选择阈值的方式,您将得到不同的结果。但这应该是一个很好的启发式方法,用于查看进程是否空闲
理想情况下,您可能会使用某种计时器定期查询和更新进程的“空闲状态”。这取决于您如何定义空闲状态 但是,您可以创建某种启发式方法,使用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
}
processp=Process.GetProcessById(proc_id);
TimeSpan begin\u cpu\u time=p.TotalProcessorTime;
//... 等一会儿
p、 刷新();
TimeSpan end\u cpu\u time=p.TotalProcessorTime;
if(结束\u cpu\u时间-开始\u cpu\u时间<时间跨度从毫秒(阈值毫秒))
{
//…进程处于空闲状态
}
其他的
{
//…进程不是空闲的
}
因此,根据您选择阈值的方式,您将得到不同的结果。但这应该是一个很好的启发式方法,用于查看进程是否空闲
理想情况下,您可能会使用某种计时器定期查询和更新进程的“空闲状态”。这正是我想要的想法。谢谢你,这正是我想要的主意。谢谢