Process.Start()仅启动该过程,它不会等到完成为止,因此进行该过程没有多大意义
async。如果您仍然想这样做,可以执行
awaitTask.Run(() => Process.Start(fileName))。
但是,如果您要异步等待过程完成,则可以将
Exited事件与一起使用
TaskCompletionSource:
static Task<int> RunProcessAsync(string fileName){ var tcs = new TaskCompletionSource<int>(); var process = new Process { StartInfo = { FileName = fileName }, EnableRaisingEvents = true }; process.Exited += (sender, args) => { tcs.SetResult(process.ExitCode); process.Dispose(); }; process.Start(); return tcs.Task;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)