ユーザーがコンボボックスを選択してからボタンをクリックするフォーム「StartForm」があります。そこから私はしたいと思います:
別のフォーム「MainForm」のインスタンスを生成する
そのフォームの DataGridView に約 50,000 行を入力します。
データグリッド ビューの各行をループし、いくつかの処理を実行します。私の場合、セルの値に基づいて行の色をフォーマットし、いくつかの列を更新しています。
フォームを表示します。
これは簡単ですが、多数の行とそれぞれの処理時間が原因で、MainForm を構築するときに UI がフリーズします。そのため、バックグラウンド スレッドで MainForm を構築する必要があり、進行中に StartForm を埋めるプログレス バーが必要です。
backgroundWorker を使用するとクロス スレッド例外が発生し続けるか、フォーマットが失われ、control.Invoke() も例外をスローするようです。たぶん私はこれらを正しく使用していないだけです...
誰かが上記を達成する方法を説明してもらえますか? 質問を理解できるように基本的なものにしようとしましたが、他の人に役立つかもしれませんが、私のコードが必要な場合はお尋ねください.
ありがとう!