简而言之:我想加载我的表单,然后使用来自Background Worker
的{{1}}获取数据并设置一些组合框的数据源。
在Database
事件中我获取数据,在DoWork
事件中我设置了数据源。问题是跨线程问题。我该怎么做才能解决这个问题?
我不明白为什么设置DisplayMember是好的,但在下一行中,设置ValueMember会抛出异常
答案 0 :(得分:11)
您可以使用控件的“Invoke”方法在与该控件相同的上下文(线程)中运行代码。这是一个简单的例子:
comboBox1.Invoke((MethodInvoker)delegate{
//Code to modify control will go here
comboBox1.Text = "";
});
答案 1 :(得分:2)
我认为你倒退了。 DoWork应为FetchData
,DoWorkCompleted应为BindComboBoxes
。