私が取り組んでいるプロジェクトでは、いくつかのデータを表示する DataGridView コンポーネントの束を含むフォームがあります。すべての DataGridView には、関連付けられた独自の DataTable があります。表示するデータは定期的に送信されます。私のアプリケーションは、このデータを読み取って解析し、それに応じてデータグリッドを埋める必要があります。フォームの応答性を維持したいので、エンドレス バックグラウンド ワーカーでデータの受信 (ブロッキング) を実装しました。
バックグラウンド ワーカーでデータを取得し、それを解析して DataTable に収まる値に変換します。ここで質問です。現時点では、これらの値を DataTable オブジェクトに直接割り当てています。(だから私はバックグラウンドワーカーの DoWork イベント内からこれを行います)
これが有効かどうか疑問に思っています。インデックスの範囲外の例外が一度ありましたが、これが何らかの形でこれに関連しているのかどうか疑問に思っていました。これは安全で推奨される方法ですか?それとも、バックグラウンド ワーカーの DoWork イベントで呼び出しを使用して DataTables を更新する必要がありますか?