[英]Check For Process.Start Termination
因此,对于我最近的项目,我需要将由控制台应用程序生成的内容放在WPF文本框中。 关键是应用程序仅在过程完成后才生成文本文件(test.txt)
,这可能需要一些时间。
这是相同的代码:
foreach (var website in lst) //list can have several entries.
{
var args = "-v -all -text test.txt n" + website.ToString() + " 443";
Process.Start(@"C:\TestSSLServer.exe", args);
Task.Factory.StartNew(() =>
{
MyValue = System.IO.File.ReadAllText(@"C:\test.txt");
});
}
如何确保仅在退出控制台应用程序TestSSLServer
时填充文本框?
编辑: Process.WaitForExit();
不起作用。 我试过了:(仍然抛出文件未找到异常。
谢谢。
您可以使用Process.WaitForExit()
进行阻止,直到进程退出。
Process p = Process.Start(@"C:\TestSSLServer.exe", args);
p.WaitForExit();
我会注意到,这将阻止其运行的任何线程。 如果要在进程退出时收到通知 ,请使用Process.Exited
事件。
您需要将流程存储在Process类型的变量中。 然后,您可以将其EnableRaisingEvents标志设置为true,并订阅表示该过程已结束的事件。 您的处理程序应该是填充文本框的函数。
MSDN上提供了示例代码。 https://msdn.microsoft.com/zh-CN/library/system.diagnostics.process.exited(v=vs.110).aspx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.