Процесс.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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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