首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的进程的Exited方法没有被调用?

为什么我的进程的Exited方法没有被调用?
EN

Stack Overflow用户
提问于 2010-12-22 05:40:19
回答 3查看 43.9K关注 0票数 101

我有以下代码,但为什么从未调用过ProcessExited方法?如果我不使用Windows shell (startInfo.UseShellExecute = false),也是一样的。

代码语言:javascript
复制
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = true;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = path;
startInfo.Arguments = rawDataFileName;
startInfo.WorkingDirectory = Util.GetParentDirectory(path, 1);

try
{
     Process correctionProcess = Process.Start(startInfo);
     correctionProcess.Exited += new EventHandler(ProcessExited);                   

     correctionProcess.WaitForExit();

     status = true;
}

.

代码语言:javascript
复制
internal void ProcessExited(object sender, System.EventArgs e)
{
      //print out here
}
EN

回答 3

Stack Overflow用户

发布于 2010-12-22 05:44:32

必须将Process.EnableRaisingEvents设置为true

票数 18
EN

Stack Overflow用户

发布于 2019-06-13 21:54:24

我遇到过将new Process()放在using子句中的示例。如果要使用Exited功能,请不要这样做。using子句将销毁实例以及Exited上的所有事件句柄。

这..。

代码语言:javascript
复制
using(var process = new Process())
{
   // your logic here
}

应该是这样的。

代码语言:javascript
复制
var process = new Process();
票数 16
EN

Stack Overflow用户

发布于 2010-12-22 05:46:12

设置correctionProcess.EnableRaisingEvents = true

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

https://stackoverflow.com/questions/4504170

复制
相关文章

相似问题

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