WPF アプリケーションでバックグラウンド タスクを実行する
WPF アプリケーションでは、ユーザー インターフェイスのフリーズを避けるために、バックグラウンドでタスクを実行する必要があることがよくあります ( UI)。これを行うには、開発者は次の基準を満たすメカニズムが必要です:
推奨アプローチ: タスクベースの 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 でのバックグラウンド タスクの実行の詳細については、およびキャンセルのサポートについては、次の参照を考慮してください:
以上がUI をフリーズさせずに WPF アプリケーションでバックグラウンド タスクを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。