Я вызываю процесс командной строки из 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