非同步等待進程退出
在許多應用程式中,在繼續操作之前必須等待進程退出。但是,使用 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中文網其他相關文章!