大きな CSV ファイル用のパーサー クラスがあります。大きなファイルを 1 行ずつ読み取る parse メソッドの作業は、backgroundWorker で行われます。完了率の情報は、メソッドを使用して UI スレッドに渡されるbackgroundWorker.ReportProgress
ため、フォームの進行状況バーがその役割を果たします。それはうまくいっています。
ただし、ドロップダウン リストに配置できるように、CSV ファイルの最初の行から取得したフィールド名のリストを UI (WPF) に送り返すカスタム イベントも発生させたいと思います。また、パーサーが不正な行やその他の障害に遭遇した場合は、イベントを介してユーザーに通知したいと思います。
バックグラウンドで実行されているパーサー プロセスは、単純にイベントを発生させることができますか? または、SynchronizationContext.Current をメイン UI スレッドからパーサー クラスに渡して、Post メソッドを使用する必要がありますか?