首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查Process.Start终止

检查Process.Start终止
EN

Stack Overflow用户
提问于 2016-05-31 21:57:39
回答 2查看 57关注 0票数 0

因此,在我最近的项目中,我需要将由控制台应用程序生成的内容放在WPF textBox中。重点是应用程序只有在进程完成后才生成文本文件(test.txt),这可能需要一些时间。

下面是相同的代码:

代码语言:javascript
复制
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();不工作。我试过了:(仍然抛出文件找不到异常。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-31 22:01:40

您可以使用Process.WaitForExit()进行阻塞,直到进程退出为止。

代码语言:javascript
复制
Process p = Process.Start(@"C:\TestSSLServer.exe", args);
p.WaitForExit();

我要注意的是,这将阻止它运行的任何线程。如果您希望在进程退出时得到通知,请使用Process.Exited事件。

票数 0
EN

Stack Overflow用户

发布于 2016-05-31 22:02:40

您需要将进程存储在一个类型为Process的变量中。然后,您可以将它的EnableRaisingEvents标志设置为true,并订阅表示进程已经结束的事件。您的处理程序应该是填充文本框的函数。

示例代码可在MSDN上使用。https://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited(v=vs.110).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37556294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档