Процесс.WaitForExit() не всегда работает [закрыто]C#

Место общения программистов C#
Anonymous
Процесс.WaitForExit() не всегда работает [закрыто]

Сообщение Anonymous »

В нашем приложении мы будем постоянно вызывать функцию ExecuteAppAsync(), чтобы программа работала постоянно. В этом тесте мы пытаемся запустить Notepad.exe. Тест завершится запуском 1 Notepad.exe в Windows.
Ожидаемым результатом теста является первый запуск Notepad.exe, и p.WaitForExit() будет ждать завершения первого notepad.exe, а затем продолжит вызывать ExecuteAppAsync().
Фактический результат теста: p.WaitForExit() не будет ждать завершения первых двух Notepad.exe, но будет ждать завершения третьего Notepad.exe. Тест завершился запуском 3 Notepad.exe в Windows.
Почему WaitForExit() не работает для первых двух вызовов функций?
public async Task ExecuteAppAsync(App app)
{
var result = new TaskResult { Success = false };

var windowSize = ProcessWindowStyle.Normal;

var startInfo = new ProcessStartInfo(app.Path) //C:\Windows\System32\notepad.exe
{
WindowStyle = windowSize,
UseShellExecute = true
};

try
{
await Task.Run(() =>
{
var p = Process.Start(startInfo);
p.WaitForExit();
});
}
catch (Exception ex)
{
result.Success = false;
return result;
}

result.Success = true;
return result;
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... lways-work

Вернуться в «C#»