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