設定:
あるアプリケーションの 3 つの別々の部分で 3 つのイベントが発生するとします。このイベントは 2 つのコントローラーで処理する必要があります。アプリケーション ディスパッチャーは、アプリケーションのすべての部分からのイベントの送受信を担当し、このディスパッチャーには非同期イベント キューが必要です。
場合によっては、3 つのイベントのうちの 2 つが何らかの属性に沿って関連付けられていますが、同じ名前ではなく、1 つだけをコントローラーに渡す必要があり、もう 1 つを破棄する必要があります。
問題:
現在、イベントをコントローラーにバウンスするだけの「キュー」があります。一度に 1 つしかない場合、キュー内の 2 つのイベントを比較する方法がないため、これは役に立ちません。
では、イベントがキューにしばらく留まるようにするにはどうすればよいでしょうか? タイムアウト機能でうまくいくと思いますが、もっと良い方法はありますか?
当然のことながら、イベントを結合するというアイデアは Cocoa に触発されており、基本的には似たようなことをしようとしています。