Я создаю приложение формы, которое также запускает консольный процесс в разных потоках. В основном мне нужно разблокировать кнопку после выхода приложения. Прежде чем я сделал обработчик событий, процесс после завершения просто остановился, но теперь, после события, сами приложения убиты.Завершения приложений при завершении процесса
Вот код для создания протекания процесса:
public void CallConsole()//This Calls the console application
{
Thread.CurrentThread.IsBackground = true;
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.FileName = filename;
if (checkBox1.Checked)
p.StartInfo.CreateNoWindow = true;
p.EnableRaisingEvents = true;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.ErrorDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.Exited += new EventHandler(p_Exited);
p.Disposed += new EventHandler(p_Exited);
p.Start();
p.BeginErrorReadLine();
p.BeginOutputReadLine();
}
Я пытался работать с Thread.IsBackground собственности, но это ничего не изменило
Вот сам обработчик события:
void p_Exited(object sender, EventArgs e)//Process on exit or disposed will make button1 avalable
{
button1.Enabled = true;
}
Любые идеи, почему применение после добавления
p.EnableRaisingEvents = true;
теперь убит, а не только процесс?
@ HansPassant Спасибо! – TheBW