我有一個(gè)帶有2個(gè)組合框的表單。我想combobox2.DataSource根據(jù)combobox1.Text和進(jìn)行填充combobox2.Text(我假設(shè)用戶已經(jīng)完成輸入,combobox1并且處于輸入的中間combobox2)。所以我有一個(gè)這樣的事件處理程序combobox2:private void combobox2_TextChanged(object sender, EventArgs e){ if (cmbDataSourceExtractor.IsBusy) cmbDataSourceExtractor.CancelAsync(); var filledComboboxValues = new FilledComboboxValues{ V1 = combobox1.Text, V2 = combobox2.Text}; cmbDataSourceExtractor.RunWorkerAsync(filledComboboxValues );}至于構(gòu)建DataSource是耗時(shí)的過(guò)程(它創(chuàng)建對(duì)數(shù)據(jù)庫(kù)的請(qǐng)求并執(zhí)行它),我認(rèn)為最好使用BackgroundWorker在另一個(gè)過(guò)程中執(zhí)行它。因此,有一種情況是cmbDataSourceExtractor尚未完成其工作,而用戶又鍵入了一個(gè)符號(hào)。在這種情況下,我在此行上看到一個(gè)異常,原因cmbDataSourceExtractor.RunWorkerAsync(filledComboboxValues );是BackgroundWorker很忙,無(wú)法同時(shí)執(zhí)行多個(gè)操作。如何擺脫這種例外?提前致謝!
- 3 回答
- 0 關(guān)注
- 1661 瀏覽
添加回答
舉報(bào)
0/150
提交
取消