0

ここに画像の説明を入力

Background Worker簡単に言うと、フォームをロードしてから、データをフェッチしDatabase ていくつかのコンボボックスの DataSource を設定したいと考えています。
イベントではDoWorkデータをフェッチし、RunWorkerCompletedイベントではデータソースを設定します。問題はクロススレッドの問題です。これを解決するにはどうすればよいですか?

DisplayMember を設定しても問題ない理由がわかりませんが、次の行で ValueMember を設定すると例外がスローされます

4

2 に答える 2

11

コントロールの「Invoke」メソッドを使用して、そのコントロールと同じコンテキスト(スレッド)でコードを実行できます。簡単な例を次に示します。

comboBox1.Invoke((MethodInvoker)delegate{
       //Code to modify control will go here
            comboBox1.Text = "";
        });   
于 2013-02-07T06:31:16.003 に答える
2

私はあなたがそれを逆手に取ったと思います。DoWork はでFetchDataあり、DoWorkCompleted は である必要がありますBindComboBoxes

于 2013-02-07T06:03:50.217 に答える