WPF アプリケーションでは、UI スレッドをブロックする可能性のあるタスクはバックグラウンドで実行する必要があります。適切なアプローチを選択するときは、スレッドのブロック、進行状況レポート、キャンセル、マルチスレッドのサポートなどの要素を考慮してください。
.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); } }
このコードは、バックグラウンドで実行されるタスクを作成し、進行状況変数を介して進行状況をレポートし、CancelTokenSource (非
詳細情報と深い理解については:
以上がWPF で進行状況レポートとキャンセルを使用してバックグラウンド タスクを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。