Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查进程是否空闲?C#_C#_Process - Fatal编程技术网

如何检查进程是否空闲?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时间<时间跨度从毫秒(阈值毫秒))
{
//…进程处于空闲状态
}
其他的
{
//…进程不是空闲的
}
因此,根据您选择阈值的方式,您将得到不同的结果。但这应该是一个很好的启发式方法,用于查看进程是否空闲


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

这正是我想要的想法。谢谢你,这正是我想要的主意。谢谢