首頁 > 後端開發 > C++ > 如何在 WPF 中執行具有進度報告和取消的背景任務?

如何在 WPF 中執行具有進度報告和取消的背景任務?

Linda Hamilton
發布: 2025-01-07 14:48:43
原創
487 人瀏覽過

How to Perform Background Tasks in WPF with Progress Reporting and Cancellation?

WPF 中的後台執行

在 WPF 應用程式中,可能會阻塞 UI 執行緒的任務應在背景執行。選擇適當的方法時,請考慮執行緒阻塞、進度報告、取消和多執行緒支援等因素。

基於任務的API 和Async/Await

使用.NET 4.5 或更高版本(或.NET 4.0 with Microsoft.Bcl.Async),使用async/await 的基於任務的API為後台執行提供了最佳解決方案。它提供了方便且結構化的編碼體驗。

範例

以下程式碼示範了使用async/await 在後台執行任務的範例:

private async void Start(object sender, RoutedEventArgs e)
{
    try
    {
        await Task.Run(() =>
        {
            int progress = 0;
            for (; ; )
            {
                Thread.Sleep(1);
                progress++;
                Logger.Info(progress);
            }
        });
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
登入後複製

此程式碼建立一個在後台執行的任務,允許透過進度變數報告進度並透過CancellationTokenSource(不是

其他資源

更多資訊和深入了解:

  • [如何在 WPF後台執行任務,同時能夠提供報表和允許取消? report-and-al)
  • 4.5 的非同步:在非同步API中啟用進度和取消(部落格文章)
  • [非同步和等待](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/ )
  • [非同步/等待常見問題解答](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/async-faq)

以上是如何在 WPF 中執行具有進度報告和取消的背景任務?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板