プログラムを実行して必要なデータの取得を開始してもフリーズしないように、プログラムにバックグラウンド ワーカーを実装しようとしています。
バックグラウンドワーカーがどのように機能するかはよくわかりません。
プログラムを実行して必要なデータの取得を開始してもフリーズしないように、プログラムにバックグラウンド ワーカーを実装しようとしています。
バックグラウンドワーカーがどのように機能するかはよくわかりません。
バックグラウンド ワーカーは、バックグラウンドで実行され、メイン スレッドを中断/ブロックすることなく動作するスレッドです。
詳しくはこちらをご覧ください。
簡単に言えば:
DoWork でブロッキング操作を行います。可能な場合はいつでも(sender as BackgroundWorker).ReportProgress(50);
、たとえば 50% の完了を報告するなどを使用して、操作の進捗状況を報告してください。
メインスレッドを「ProgressChanged」イベントにサブスクライブさせることができます。これにより、GUI を更新したり、進行状況が変化したときに発生する他のタスクを実行したりできます。