Обработка события Process.Exited - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Имеется код:
Листинг программы
  1. // файл создадим в "Моих Документах"
  2. String file = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\out.txt";
  3. String output = "";
  4. using (StringWriter writer = new StringWriter()) {
  5. // Переназначаем выходной поток консоли
  6. // Теперь консоль пишет в строку
  7. Console.SetOut(writer);
  8. Console.WriteLine("Это и следующее сообщение выводятся в выходной поток консоли.");
  9. Console.WriteLine("Мы можем назначить другой поток.");
  10. output = writer.ToString();
  11. }
  12. // Записываем строку в файл и открываем его в "Блокноте"
  13. File.WriteAllText(file, output);
  14. ProcessStartInfo procInfo = new ProcessStartInfo {
  15. FileName = "notepad",
  16. Arguments = file,
  17. UseShellExecute = false
  18. };
  19. //
  20. Process proc = new Process();
  21. proc.EnableRaisingEvents = true;
  22. proc.StartInfo = procInfo;
  23. // Действия после завершения процесса
  24. // Проблема ТУТ
  25. proc.Exited += (sender, ea) =>
  26. {
  27. System.Windows.Forms.MessageBox.Show("Процесс завершён.");
  28. File.Delete(file);
  29. };
  30. proc.Start();
И всё работает как надо кроме обработчика события Exited. После закрытия блокнота, файл не удаляется и сообщение не выводится. Однако, в режиме отладки, после закрытия блокнота, при попытке получить информацию о переменной proc, сообщение вдруг появляется и файл вдруг удаляется. Как это исправить и почему так происходит?

Решение задачи: «Обработка события Process.Exited»

textual
Листинг программы
  1. bool contin=false;
  2. proc.Exited += (sender, ea) =>
  3. {
  4.     System.Windows.Forms.MessageBox.Show("Процесс завершён.");
  5.     File.Delete(file);
  6. contin=true;
  7. };
  8. proc.Start();
  9. while (!contin)
  10. {
  11. Thread.Sleep(100);
  12. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут