为了账号安全,请及时绑定邮箱和手机立即绑定

如何正确停止BackgroundWorker

如何正确停止BackgroundWorker

MMMHUHU 2019-12-03 09:57:32
我有一个带有2个组合框的表单。我想combobox2.DataSource根据combobox1.Text和进行填充combobox2.Text(我假设用户已经完成输入,combobox1并且处于输入的中间combobox2)。所以我有一个这样的事件处理程序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 );}至于构建DataSource是耗时的过程(它创建对数据库的请求并执行它),我认为最好使用BackgroundWorker在另一个过程中执行它。因此,有一种情况是cmbDataSourceExtractor尚未完成其工作,而用户又键入了一个符号。在这种情况下,我在此行上看到一个异常,原因cmbDataSourceExtractor.RunWorkerAsync(filledComboboxValues );是BackgroundWorker很忙,无法同时执行多个操作。如何摆脱这种例外?提前致谢!
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 1568 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信