我的应用程序启动了一个控制台应用程序。捕获输出并发送控制台应用程序输入。一切都很好。当我完成控制台应用程序时,我可以毫无问题地退出currentProcess。当我的主应用程序崩溃或不规则退出时,我的问题发生。 ConsoleExeFile保留在任务管理器中,现在正在耗尽CPU的全部内核。然后我必须在任务管理器中杀死ConsoleExeFile。
// Set the options.
ProcessStartInfo processStartInfo = new ProcessStartInfo(ConsoleExeFile, "");
// Set the options.
processStartInfo.UseShellExecute = false;
processStartInfo.ErrorDialog = false;
processStartInfo.CreateNoWindow = true;
// Specify redirection.
processStartInfo.RedirectStandardError = false;
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
// Create the process.
currentProcess = new Process();
currentProcess.EnableRaisingEvents = true;
currentProcess.StartInfo = processStartInfo;
currentProcess.Exited += new EventHandler(currentProcess_Exited);
currentProcess.OutputDataReceived += currentProcess_OutputDataReceived;
// start the process.
currentProcess.Start();