在Winform应用程序中,我希望使用一个backgroundworker(或者每个窗体都有一个backgroundworker)对不同的事件执行不同的任务。例如:搜索、在网格中加载数据、打开新表单、发送电子邮件、文件传输等。
如何在backgroundWorker\u dowwork()和backgroundWorker\u RunWorkerCompleted()事件中管理所有这些?
做这件事的最佳方法/最佳实践是什么?
通常,我会用一个参数来校准worker,如下所示:
backgroundWorker.RunWorkerAsync(<some argument here>);
e.Argument ,根据论点,你知道你想用它做什么。
e.Argument
如果不需要其他参数,可以使用所需的值创建枚举,如 Search Load 以此类推,并将其传入,然后在DoWork中检查该值以选择要执行的操作。请记住,由于e.Argument是一个对象,因此必须回溯到Dowork中的枚举。
Search
Load