C# のイベント ハンドラーが予想よりも時間がかかり、実行中にワーカー スレッドが効果的にブロックされて、パフォーマンスの問題が発生することが何度もありました。
BeginInvoke
それ以来、厳密に必要かどうかを最初に考慮せずに、( を使用して) async を実行するように常にイベントをコーディングしています。
このアプローチのマイナス面はありますか (マイナーなパフォーマンス ヒット以外に)? また、同じスレッドでイベントを実行する必要があるのはどのような場合ですか (結果を待っている間にブロックしたいという明白なケースを除く)? デフォルトの動作ではない理由がいくつかあるはずです。