当process.WaitForExit()时,Visual C#GUI停止响应;使用
我正在使用Visual C#2005(net framework 2)创建一个GUI应用程序。我使用以下代码来启动一个过程:
Process process = new Process();
process.StartInfo = new ProcessStartInfo("app.exe");
process.StartInfo.WorkingDirectory = "";
process.StartInfo.Arguments = "some arguments";
process.Start();
process.WaitForExit();
我希望我的应用程序等到这个过程完成,所以我使用了WaitForExit。但是当app.exe运行时,GUI Windows会冻结。我希望它响应(例如按下取消按钮),但我不希望代码继续,因为还有另一个进程要启动。提前致谢!
没有找到相关结果
已邀请:
6 个回复
很缴
棠媳鳖
炉挤仙挟
磋判粗惊
使用exited对我来说效果很好,并且给了我很大的灵活性,可以顺序运行,部分同步运行,也可以一次运行 - 无需锁定UI。
念炯
襄挟款籍
//启动一个启动进程的新线程,因此当您调用WaitForExit时,它不会冻结主线程
如果你想连续运行多个进程,则另一种情况 你需要使用类似过程列表的东西看下面的代码
//我手动添加另一个,但你可以使用循环例如
//然后你将通过你的线程启动它们,第二个进程将等到第一个进程完成而不阻塞UI