У меня есть программа, которая запускает внешнюю утилиту командной строки и читает стандартный вывод (изображение в формате PNG). Первоначально во время тестирования программа командной строки записывала изображение во временный файл, а затем загружала файл в программа. У меня был обработчик для Process.Exited, который выдал исключение, если код выхода был ненулевым. Я вызвал WaitForExit перед загрузкой временного изображения, чтобы убедиться, что процесс завершен. Если возникло исключение, оно обрабатывалось в коде, который считывал временный файл изображения. Теперь я делаю вызов для создания файла изображения непосредственно после вызова Process.Start, который работает нормально, если нет ошибки. Если внешняя программа завершает работу ненормально, исключение, выданное обработчиком выхода, больше не перехватывается моим кодом. Если я вызываю WaitForExit до того, как прочитаю стандартный вывод, программа зависает. Есть ли способ отловить исключение, выданное обработчиком выхода, без вызова WaitForExit?