在我的應用程序中,我更新了backgrounworker線程中的一個treeview。在更新樹視圖時,組合框值不可見。當樹視圖更新時,會顯示值。C#組合值在線程準備就緒後可見
這裏是我的BackgroundWorker代碼:
void _bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
tvCategories.Invoke((MethodInvoker)delegate()
{
FillCategoryTreeView(); // Fills the treeview
}
);
}
,填補我的組合框代碼:
private void FillCategoryCombo()
{
Category categorie = new Category();
List<Category> categories = categorie.GetQuestionCategories();
cmbCategories.DataSource = categories;
cmbCategories.DisplayMember = "Description";
cmbCategories.ValueMember = "Id";
}
組合框填充在窗體的構造函數。
我把樹視圖放在一個單獨的線程中的原因是因爲樹視圖必須更新。在此期間,我想繼續使用該應用程序。因此我需要訪問組合框。但是樹形視圖正在更新時,組合框的值不可見。
該怎麼做才能解決這個問題?
什麼問題?你只告訴我們你做了什麼,有什麼問題,但現在什麼... 如果你只調用一個UI調用,使用backgroundWorker有什麼意義? – Peter 2010-02-25 14:23:20