イベントドリブンの落とし穴

WPFは知らんが、WindowsFormで一番やっかいなバグの原因の一つがこれだ。
主にコントロールが持つ振舞いとWindows Messageの仕様によって、プログラマの意図しない順序でイベントが発生してアプリケーションが予想しない動作をしたり、再現困難な異常動作をしたりする。(本当は異常な動作ではないのだが、どうしてそのような動作をするのかが意図できないうちは異常な動作に見えてしまう)
このケースではVisual Studio等のインタラクティブなデバッガを使うと、得てして振舞いやイベントの発生順序が変わってしまうものだが、これを理解できない人々がいるので困ってしまう。
デバッグセッションと実際アプリケーションの動作が必ず同じになる思い込んでいるのだ。