以前は、コールバックを登録できるライブラリを使用して、イベントが発生したときにライブラリがメソッドを呼び出せるようにしました(たとえば、GUIライブラリを使用するコードで次のように表示されるのが一般的ですbutton.onClick(clickHandler)
)。
単純に、ライブラリの処理メカニズムは次のように実装できると思います。
while(1){
if (event1) { event1Handler(); }
if (event2) { event2Handler(); }
...
}
しかし、それは本当に無駄ですよね?それとも、それは本当にそれが行われる方法ですか(たとえば、Java Swingのようなよく知られたGUIライブラリを実行するか、GTK +はこのように実行します)?
バックグラウンド:
私が呪いに遭遇するまで、この質問は私には実際には起こりませんでした。方法がわからないことに気付くまで、自分のコールバックシステムを実装することを考えました。