Artyom пре 4 година
родитељ
комит
57bfefd4a3
1 измењених фајлова са 8 додато и 5 уклоњено
  1. 8 5
      ReactiveExample/TerminalScheduler.cs

+ 8 - 5
ReactiveExample/TerminalScheduler.cs

@@ -23,19 +23,22 @@ namespace ReactiveExample {
 				return composite;
 			}
 
-			IDisposable PostAsTimeout () {
-				var composite = new CompositeDisposable(2);
-				var token = Application.MainLoop.AddTimeout (dueTime, args => {
+			IDisposable PostOnMainLoopAsTimeout () {
+				object timeout = null;
+				var composite = new CompositeDisposable (2) {
+					Disposable.Create (() => Application.MainLoop.RemoveTimeout (timeout))
+				};
+				timeout = Application.MainLoop.AddTimeout (dueTime, args => {
 					composite.Add(action (this, state));
+					Application.MainLoop.RemoveTimeout (timeout);
 					return true;
 				});
-				composite.Add (Disposable.Create (() => Application.MainLoop.RemoveTimeout (token)));
 				return composite;
 			}
 
 			return dueTime == TimeSpan.Zero 
 				? PostOnMainLoop ()
-				: PostAsTimeout ();
+				: PostOnMainLoopAsTimeout ();
 		}
 	}
 }