Почему не вызывается метод Exited моего процесса?
у меня есть следующий код, но почему ProcessExited метод никогда не вызывается? Это то же самое, если я не использую оболочку Windows (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
}
4 ответов:
для того, чтобы получить обратный вызов на
ExitedмероприятияEnableRaisingEventsдолжно быть установлено значение true.Process correctionProcess = Process.Start(startInfo); correctionProcess.EnableRaisingEvents = true; correctionProcess.Exited += new EventHandler(ProcessExited);
с MSDN:
событие Exited указывает, что связанный процесс завершен. Этот возникновение означает, что процесс завершен (прерван) или успешно завершить. Это событие может происходит только если значение Свойство EnableRaisingEvents имеет значение true.
вы установите это свойство в true?
Comments