創建簡單:我想加載自己的狀態,然後用Background Worker
從Database
獲取數據並設置一些組合框的數據源。
在DoWork
事件I獲取數據,並在RunWorkerCompleted
事件中設置數據源。問題是交叉線程問題。我能做些什麼來解決這個問題?
我不明白爲什麼設置DisplayMember是確定的,但在下一行,設置ValueMember拋出一個異常
創建簡單:我想加載自己的狀態,然後用Background Worker
從Database
獲取數據並設置一些組合框的數據源。
在DoWork
事件I獲取數據,並在RunWorkerCompleted
事件中設置數據源。問題是交叉線程問題。我能做些什麼來解決這個問題?
我不明白爲什麼設置DisplayMember是確定的,但在下一行,設置ValueMember拋出一個異常
我覺得你得到它倒退。 DoWork應該是FetchData
,DoWorkCompleted應該是BindComboBoxes
。
你是對的:)在改變代碼我複製粘貼的東西,沒有足夠的關注。謝謝。 –
您可以使用控件的「Invoke」方法在與該控件相同的上下文(線程)中運行代碼。這裏有一個簡單的例子:
comboBox1.Invoke((MethodInvoker)delegate{
//Code to modify control will go here
comboBox1.Text = "";
});
請張貼代碼不是它的圖片。 –
抱歉@RichardSchneider,感謝提及 –