Timer timer = new Timer();
BackgroundWorker bw = new BackgroundWorker();
EventHandler HandleStuff = delegate { MessageBox.Show("HandleStuff called"); };
timer.Tick += HandleStuff;
bw.RunWorkerCompleted += HandleStuff;
最后一行是不允许的,因为:
无法将类型“System.EventHandler”隐式转换为“System.ComponentModel.RunWorkerCompletedEventHandler”
2个问题:为什么 RunWorkerCompleted 不能接受常规的 EventHandler - 完成的事件不是多线程的,这个限制存在的原因是什么?
更重要的是,是否有解决方法来实现这一目标?我想对Timer.Tick
和使用相同的处理程序bw.RunWorkerCompleted