我有以下代码,但为什么从未调用过ProcessExited
方法?如果我不使用Windows shell (startInfo.UseShellExecute = false
),也是一样的。
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;
}
.
internal void ProcessExited(object sender, System.EventArgs e)
{
//print out here
}
发布于 2010-12-22 05:44:32
必须将Process.EnableRaisingEvents
设置为true
。
发布于 2019-06-13 21:54:24
我遇到过将new Process()
放在using
子句中的示例。如果要使用Exited
功能,请不要这样做。using
子句将销毁实例以及Exited
上的所有事件句柄。
这..。
using(var process = new Process())
{
// your logic here
}
应该是这样的。
var process = new Process();
发布于 2010-12-22 05:46:12
设置correctionProcess.EnableRaisingEvents = true
https://stackoverflow.com/questions/4504170
复制相似问题