как освободить ресурсы процесса - PullRequest
1 голос
/ 17 октября 2008

Я вызываю внешний процесс, используя System.Diagonistics.Process и передавая два имени файла в качестве параметров. Теперь некоторое время этот процесс завершается из-за исключений, и кажется, что дескриптор файлов не освобождается процессом. Как я могу освободить ресурсы, занятые процессом.

Ответы [ 3 ]

1 голос
/ 17 октября 2008

Что заставляет вас думать, что файловые дескрипторы не выпускаются? Поскольку вы запускаете процесс, который является внешним по отношению к вашему приложению, вы не имеете большого контроля над тем, что будет делать другой процесс, когда он аварийно завершится.

1 голос
/ 17 октября 2008

Это приложение WMVAppend.exe (доступно с Microsoft Media SDK). Даже когда мы перезагружаем машины, он сообщает об ошибке и нормально работает для следующего запуска. Проблема только с добавлением медиа, которая не выполняется нашим процессом. Я также проверил исходные файлы, и они кажутся идеальными, но они не добавляются идеально и файлы недоступны для использования.

Или, возможно, процесс вообще не завершен, но я использую Process.WaitForExit (), который должен возвращать только процесс завершен. Диалоговое окно с сообщением об ошибке при перезапуске подсказывает, что это возможно.

0 голосов
/ 17 октября 2008

Как вы обнаруживаете, что дескрипторы файлов не освобождаются процессом умирания?

Все ресурсы должны быть освобождены процессом, который умирает по любой причине. Если это не так, то это ошибка, которая должна быть подана в Microsoft.

...