我想做一些非常简单的事情,我希望有一种简单的方法来做这件事!
- 在按下按钮时从我的用户表单应用程序启动一个外部 exe(例如使用
Process.Start()
?)。 - 在我的应用程序中等待此 exe 生成已知文件或关闭。 (除了等待之外,我不需要在我的申请中进行任何其他事件)
- 如果 exe 已经生成了所需的文件,它应该被自动终止(大概使用
Process.Kill()
)
在这个阶段,我的表单输入应该恢复活跃。
启动的 exe 有自己的用户界面,我的用户将在它处于事件状态时使用它。 我认为关键在于有效地进行等待。我假设我可以启动一个计时器循环,它会每隔几百毫秒监视文件的出现和启动的 exe 的关闭。
那时 PC 几乎不会做其他事情,我觉得在这种情况下,简单性胜过效率。
最佳答案
你有基本的想法。
Process.Start
将启动流程。-
Process.WaitForExit
将阻塞直到应用程序完成 - 根据您的第二点(见上文),您不需要终止它,因为它会完成
如果可执行文件实际上没有成功完成,您也可以使用 FileSystemWatcher
观察输出文件的变化,然后使用 Process.CloseMainWindow
或 Process.Kill
在正确生成输出后终止它。
关于c# - 从 Form 启动外部 exe,然后等待它生成文件,或者关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071884/