如何确定进程是否与 System.Diagnostics.Process 对象相关联?

JYe*_*ton 5 c# process

给定已为其属性​​赋值的特定System.Diagnostics.Process.FileName.Arguments,确定它是否的最佳方法是:

  1. 曾经被发出过.Start()命令或
  2. 当前是否与某个进程相关联?

如果.Start()从未发出过,则调用.CloseMainWindow()会导致 InvalidOperationException,我想避免这种情况。

Mit*_*eat 3

您是否尝试过检查Process.IdExit 属性之一?

参考

回应海报的评论:也许您必须包装在 try/catch 中,并且抛出的异常表明未启动?不太漂亮!

  • 您可以将答案更新为正式的 try/catch 吗?我窥探到 System.dll 来查看 Process 类,是的 - 没有办法清楚地确定进程是否关联。丑陋的! (4认同)
  • try/catch 是现在有效的方法,显然我们将坚持使用它。:) (2认同)