异步C#/XAML如何等待批处理文件完成“等待myProcess.StandardInput.WriteLineAsync(“LongRunning.bat”);“

wixjitnu  于 2022-12-07  发布在  C#
关注(0)|答案(1)|浏览(167)

异步C#/XAML/WinUI-3如何等待批处理文件完成。
在我的应用程序中,我运行一个长时间运行的批处理文件。批处理文件从互联网上下载数据,需要5-10分钟才能下载。
下面代码的观察到的行为只是等待WriteLine完成,然后在批处理文件继续在后台运行的同时沿着运行。我想等到批处理文件完成,因为下载数据是第一步,并且在处理数据之前是必需的。有没有办法完成这一点?

"await myProcess.StandardInput.WriteLineAsync("LongRunning.bat");"
c86crjj0

c86crjj01#

这就是我在不了解您的具体应用程序和用例的情况下会如何做的。请注意,WaitForExitAsync需要.NET 5或更高版本。

var processInfo = new ProcessStartInfo("cmd.exe", "/c LongRunning.bat");
processInfo.CreateNoWindow = true;
processInfo.UseShellExecute = false;
var process = Process.Start(processInfo);
await process.WaitForExitAsync();

相关问题