public static UVTimer Once(Loop loop, TimeSpan timeout, Action callback) { var timer = new UVTimer(loop); timer.Tick += () => { if (callback != null) { callback(); } timer.Close(); }; timer.Start(timeout, TimeSpan.Zero); return(timer); }
public static UVTimer Times(Loop loop, int times, TimeSpan repeat, Action <int> callback) { var timer = new UVTimer(loop); int i = 0; timer.Tick += () => { i++; if (callback != null) { callback(i); } if (i >= times) { timer.Close(); } }; timer.Start(repeat, repeat); return(timer); }
private static Action <Exception> End(TimeSpan timeSpan, Action <Exception> callback) { UVTimer timer = null; Action <Exception> end = (Exception exception) => { if (timer != null) { timer.Close(); timer = null; if (callback != null) { callback(exception); } } }; timer = UVTimer.Once(timeSpan, () => end(new TimeoutException())); return(end); }
public static UVTimer Once(Loop loop, TimeSpan timeout, Action callback) { var timer = new UVTimer(loop); timer.Tick += () => { if (callback != null) { callback(); } timer.Close(); }; timer.Start(timeout, TimeSpan.Zero); return timer; }
public static UVTimer Times(Loop loop, int times, TimeSpan repeat, Action<int> callback) { var timer = new UVTimer(loop); int i = 0; timer.Tick += () => { i++; if (callback != null) { callback(i); } if (i >= times) { timer.Close(); } }; timer.Start(repeat, repeat); return timer; }