如何确定进程对象是否正在运行
虽然 googlin 我只有如何获取所有进程的信息,存储到 Process[] 中,但我需要的是:
Process proc = new Process();
proc.startInfo.FileName = "notepad.exe";
proc.Start();
下面我创建了一个进程对象,现在我需要确切地知道这个进程是否已关闭这是因为如果用户关闭并且如果我尝试使用代码 proc.Exit();
它会抛出 Exception 。
到目前为止我正在做这样的事情:
Process procs = new Process();
Process[] proc = Process.GetProcesses();
foreach (Process p in proc)
{
if (p.Id = procs.Id)
{
//Do Something
break;
}
}
While googlin im having only Information how to get All Processes ,store into Process[]
,but what i need is :
Process proc = new Process();
proc.startInfo.FileName = "notepad.exe";
proc.Start();
Below i created a Process Object ,now i need to know if this Process is Closed ,exactly this one because if User Closes and if i try from Code proc.Exit();
it throws an Exception .
So far im doing like :
Process procs = new Process();
Process[] proc = Process.GetProcesses();
foreach (Process p in proc)
{
if (p.Id = procs.Id)
{
//Do Something
break;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
只需使用
HasExited
在您的Process
对象上:或者,如果您希望在进程关闭后立即收到通知,请使用
退出
事件:Just use
HasExited
on yourProcess
object:Or, if you want to be notified as soon as the process has been closed, use the
Exited
event:添加这一行:
然后这样的方法:
您可以拥有自己的全局标志,并在处理程序中引发它或“实时”处理它取决于您的最终目标是什么。
Add this line:
Then such method:
You can have your own global flag, and raise it in the handler or handle it "live" depends on what is your final goal.