Archive for the ‘Queue’ Category
複数の非同期処理の完了を通知するQueueクラス
複数のファイルを読み込む場合など、複数の非同期処理の進行状況とすべてが完了したタイミングをイベントとして受け取ることができるQueueクラスを公開しました。
サンプルのダウンロードはこちらから。
クラスを公開するというほど大げさなものではありませんが、なるべく標準的なイベントモデルには変更を加えずに、複数イベントの完了を通知することができます。
仕組みはいたって単純で、各イベントを受け取るリスナーを Queue(待ち行列)に追加し、イベントが呼ばれたらQueueから削除しているだけです。
Queueが削除されたタイミングとQueueがなくなったタイミングでイベントが発生し、
queue.length / queue.totalで進行状況を知ることができます。
また、エラー発生時にもリスナーをQueueから削除するようにしておけば、ファイルが一部取得できなかった場合にもQueueの完了イベントを受け取ることができます。