Lou*_*hys 7 .net c# system.diagnostics
在.NET中Process.GetProcessById,如果没有运行具有此ID的进程,则抛出异常.如何安全地调用此方法,以便它不会抛出异常?我在想类似的东西
if(Process.IsRunning(id)) return Process.GetProcessById(id);
else return null; //or do something else
Run Code Online (Sandbox Code Playgroud)
但是找不到任何检查ID的方法,除了可能获取所有正在运行的进程并检查列表中是否存在id.
Dmi*_*oly 13
public Process GetProcByID(int id)
{
Process[] processlist = Process.GetProcesses();
return processlist.FirstOrDefault(pr => pr.Id == id);
}
Run Code Online (Sandbox Code Playgroud)
我看着里面的Process.GetProcessById方法.
它使用内部静态类ProcessManager来确保该进程运行.ProcessManager获取当前在系统中运行的所有进程并检查其中的id,因此我认为这是最好的方法.
所以你应该考虑异常的开销或Process数组的开销.
| 归档时间: |
|
| 查看次数: |
13248 次 |
| 最近记录: |