0

私はちょうど同様のスレッドを開始しましたが、これは別の質問だと思うので、ここに行きます!

私は BackgroundWorker を使用して、多くのファイル操作を実行している間に UI がロックされるのを防ぎます。これで問題は解決しましたが、BackgroundWorker が呼び出される関数が BackgroundWorker の結果に基づいて true/false を返す必要があるため、別の問題が発生します。

明らかに、これを回避する方法があります-ループを使用してワーカーがビジーかどうかを確認しますが、これは特に面倒な方法のようです。私はこれについてさらに詳しく調べましたが、BackgroundWorker が終了するまで待つ必要がある場合、そもそもそれを使用する目的に反していると多くの人が言います。

ここでのオプションは何ですか? 関数内で BackgroundWorker を使用し、BackgroundWorker が行っている作業の結果に基づいて戻り値を報告する「正しい」方法はありますか、または他のものが進行している間に UI の応答性を維持する簡単な方法はありますかの上?

4

1 に答える 1

-1

BackgroundWorker.WorkerReportsProgress = TrueBackgroundWorker の起動時に設定します。

メソッドを呼び出しBackgroundWorker.ReportProgress、メイン スレッドでイベントを処理します。DoWorkBackgroundWorker.ProgressChanged

于 2013-06-27T05:53:25.723 に答える