Ich habe - abstrahiert - folgendes Szenario:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var obs = Observable.FromEvent<AsyncCompletedEventArgs> ( h => this.Class.AsyncMethodCompleted += h, h => this.Class.AsyncMethodCompleted -= h ) .Take(1);
obs.Subscribe ( e => { MessageBox.Show("AsyncMethodCompleted"); } );
this.Class.AsyncMethod(); |
Bei AsyncMethod() handelt es sich - welch Überraschung - um eine asynchrone Methode.
Ich möchte nun erreichen, dass das System nach dem AsyncMethod() Aufruf so lange wartet, bis das Event (e) gecalled wurde.
Ich habe gelesen, dass man dafür Observable.ObserveOnDispatcher<TSource> (selbst erklärend denke ich) ausführen soll.
Leider kann ich dies nicht einmal testen, da "meine" Observable Klasse diese Methode nicht besitzt (!).
Ich habe die System.Reactive.dll aus dem Silverlight 4.0 Toolkit eingebunden.
RuntimeVersion = v2.0.50727
Version = 1.0.0.0
Irgendwie irritiert mich das ein wenig. Weiß jemand wie ich meine Anforderung umsetzen kann?
Moderiert von
Kha: Topic aus C# - Die Sprache verschoben am Do 20.05.2010 um 13:45