是否存在与Process.Start异步的等效项?

是否存在与Process.Start异步的等效项?,第1张

是否存在与Process.Start异步的等效项?

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;}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5441042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存