使用多线程时,组合框消失

时间:2012-02-27 00:56:37

标签: c# combobox sql-server-ce datasource

Query("SELECT City From Database GROUP BY City", out ds);
citycombobox.DataSource = null;
System.Windows.Forms.ComboBox.ObjectCollection coll = new ComboBox.ObjectCollection(citycombobox);

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
    coll.Add(ds.Tables[0].Rows[i][0]);
}

if (citycombobox.InvokeRequired)
{
    cityrcombobox.Invoke((MethodInvoker)delegate()
                  {
                    citycombobox.DataSource = coll;
                    citycombobox.SelectedIndex = -1;
                  });
}
else
{
    citycombobox.DataSource = coll;
    citycombobox.SelectedIndex = -1;
}

当我从主线程中调用此函数时,它的工作完美,但是我有另一个线程(它不是后台线程)当我从另一个线程调用此代码时,我的组合框消失但是数据源正在更新,只是从表单开始。

提前致谢。

0 个答案:

没有答案