wpfバックグラウンドワーカー:レスポンシブUIデザインのガイド
レスポンシブユーザーインターフェイス(UI)を維持することは、ポジティブなユーザーエクスペリエンスにとって重要です。 ただし、長期にわたるプロセスでは、WPFアプリケーションを簡単にフリーズできます。 このガイドでは、
最初に、必要な名前空間を含めます:
<code class="language-csharp">using System.ComponentModel;</code>
A
インスタンスを作成します:
BackgroundWorker
<code class="language-csharp">private readonly BackgroundWorker worker = new BackgroundWorker();</code>
イベントを購読してください:DoWork
RunWorkerCompleted
<code class="language-csharp">worker.DoWork += Worker_DoWork; worker.RunWorkerCompleted += Worker_RunWorkerCompleted;</code>
イベントハンドラーは、長期にわたるタスクを実行します。 タスクが終了した後、イベントハンドラーはUIを更新します。
Worker_DoWork
例:Worker_RunWorkerCompleted
ステップ3:非同期操作の開始
<code class="language-csharp">private void Worker_DoWork(object sender, DoWorkEventArgs e) { // Perform your time-consuming operation here } private void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { // Update the UI with results here }</code>
。を使用して背景タスクを開始します
オプション:進行状況報告worker.RunWorkerAsync()
進行状況の更新については、
ProgressChanged
例:worker.ReportProgress(Int32)
DoWork
worker.WorkerReportsProgress = true
結論
WPFの<code class="language-csharp">// Subscribe to ProgressChanged worker.ProgressChanged += Worker_ProgressChanged; // Report progress within Worker_DoWork worker.ReportProgress(50);</code>
以上がWPF の BackgroundWorker は、長時間実行されるタスク中に UI の応答性を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。