异步等待进程退出
在许多应用程序中,在继续操作之前必须等待进程退出。但是,使用 Process.WaitForExit() 可能会导致图形用户界面 (GUI) 冻结。为了避免此问题,需要基于事件或基于线程的解决方案。
基于事件的方法
从 .NET 4.0/C# 5 开始,异步模式提供了一种更优雅的方式来表示等待过程。可以将 WaitForExitAsync() 方法添加到 Process 类中,使应用程序能够异步等待进程退出:
public static Task WaitForExitAsync(this Process process, CancellationToken cancellationToken = default(CancellationToken))
方法内部:
用法
要使用 WaitForExitAsync() 方法:
public async void Test() { var process = new Process("processName"); process.Start(); await process.WaitForExitAsync(); // Do some fun stuff here... }
以上是如何在 C# 中异步等待进程退出而不冻结 GUI?的详细内容。更多信息请关注PHP中文网其他相关文章!