Als kleiner Tipp: Es gibt sehr gute Implementierungen der ganzen Sache (also Obersever Pattern und Iterator Pattern) mit einem größtenteils sehr einheitlichen Interface:
http://reactivex.io/
Leider ist hier (noch?
) keine Bibliothek für Delphi dabei.
Ich hab kürzlich angefangen, das in Spring4D zu implementieren, allerdings hat das noch internen Prototyp Status