繁体   English   中英

检查过程开始终止

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM