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