【发布时间】:2010-10-02 23:38:33
【问题描述】:
我想等待进程完成,但process.WaitForExit() 挂起我的 GUI。是否有基于事件的方式,还是我需要生成一个线程阻塞直到退出,然后自己委托事件?
【问题讨论】:
-
这是
Process的完全异步 实现,您还可以重定向标准输出和标准错误流stackoverflow.com/a/39872058/1212017。 -
虽然没有异步
process.WaitForExit(),但有一个异步process.StandardOutput.ReadToEnd()。如果您启动的进程在终止之前没有关闭其标准输出(长时间),您可能需要考虑将此作为替代方案(尽管您仍然必须在之后process.WaitForExit()以防万一)。
标签: c# .net winforms user-interface asynchronous