C # процесс зависает при утилизации - PullRequest
0 голосов
/ 28 мая 2018

Я вызываю процесс командной строки из C #, который выполняет обновление с некоторого удаленного сервера.Работает нормально, когда он может найти удаленный сервер и получить данные с него.Также отлично работает, если не подключен к сети.

Однако, когда удаленный сервер недоступен, внешний процесс будет пытаться извлекать данные бесконечно, и в параметрах командной строки не будет указано время ожидания.Поэтому я добавил принудительное уничтожение процесса после попытки в течение 15 секунд.

using (var process = new Process {...})
{
    process.Start();
    if (!process.WaitForExit(15 * 1000))
    {
        process.Kill();
    }
}

Я вижу, что процесс завершается при вызове process.Kill(), но затем он зависает при выходе из области действия using (т.е. при утилизации процесса).

Что с этим не так?Я что-то упустил, чтобы убедиться, что этот процесс правильно убит?

Спасибо!

РЕДАКТИРОВАТЬ:

Процесс StartInfo is

FileName = command,
Arguments = arguments,
WorkingDirectory = workDir,
CreateNoWindow = true,
UseShellExecute = false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...