在WPF 應用程式中執行後台任務
在WPF 應用程式中,通常需要在背景執行任務以避免凍結使用者介面(使用者介面).為此,開發人員需要一個滿足以下條件的機制:
建議方法:基於任務API 和Async/Await
隨著.NET 4.5(或帶有Microsoft.Bcl.Async 庫的.NET 4.0)的發布,後台任務的推薦方法是利用基於任務的API和非同步/等待。此技術具有以下優點:
示例實現
以下程式碼示範如何使用基於任務的API 和async/await執行後台任務:
private async void Start(object sender, RoutedEventArgs e) { try { await Task.Run(() => { int progress = 0; for (; ; ) { System.Threading.Thread.Sleep(1); progress++; Logger.Info(progress); } }); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
此程式碼與 UI 執行緒並行產生一個新任務,讓 UI 在後台任務進行時保持回應。它還包括異常處理,以便在任務執行期間發生異常時顯示錯誤訊息。
其他資源
有關在帶有進度報告的WPF 中執行後台任務的更多信息和取消支持,請考慮以下參考:
以上是如何在 WPF 應用程式中執行後台任務而不凍結 UI?的詳細內容。更多資訊請關注PHP中文網其他相關文章!