掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Backgroundworkerでデータセット取得について (ID:146925)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Call BackgroundWorker1.RunWorkerAsync() の後、DoWorkイベントが走らずに DataGridView1.DataSource = J20_DataSet.Tables("J20F") が走った後に、DoWorkイベントが実行されます は間違いではないみたいです。 DoWork より BtnHyouji_Click イベントの方が 早く処理される為にそう見えるみたいです (非同期処理で尚且つ BackgroundWorker スレッドに時間が掛かる為) だから J20_DataSet にデータが入る前に DataGridView1.DataSource = J20_DataSet.Tables("J20F") が実行されて、何も表示されていなかったみたいです。 これは RunWorkerCompleted 内で DataGridView1.DataSource = J20_DataSet.Tables("J20F") をすることにより解決したのですが、別の問題が発生しました。 問題: メインスレッドで、実行される RowPostPaint や CellPainting イベントが、BackgroundWorker スレッドでは実行されないので 個別のセル描画が出来ないということです。(当然なのですが・・・) RunWorkerCompleted で RowPostPaint や CellPainting を うまく実行することは可能でしょうか? また、他の回避方法があればご教授願います。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.