Ken*_*Ken 12 .net c# pid process
我正在使用C#.NET 2.0.我需要确定PID是否存在.我想出了以下代码:
private bool ProcessExists(int iProcessID)
{
foreach (Process p in Process.GetProcesses())
{
if (p.Id == iProcessID)
{
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
除了迭代所有进程之外,还有更好的方法吗?
Jar*_*Par 20
快速注意:您无法确定是否正在运行除您自己以外的进程.你只能说它在最近的某个时刻正在运行.一个过程可以在任何给定时刻停止存在,包括检查它是否具有匹配ID的确切时刻.
话虽这么说,这种类型的决定可能或可能不足以满足您的计划.这实际上取决于你想要做什么.
这是您编写的代码的缩写版本.
private bool ProcessExists(int id) {
return Process.GetProcesses().Any(x => x.Id == id);
}
Run Code Online (Sandbox Code Playgroud)
System.Diagnostics.Process.GetProcessById(iProcessID)如果进程不存在,则会抛出 ArgumentException。虽然这不是检查进程是否存在的最佳方法,但希望这就是您正在寻找的。