static void Helper(TimeSpan interval, object state = null, Action <object> callback = null, Action afterTick = null) { using (var mre = new ManualResetEvent(false)) { using (var timer = new AbsoluteTimer(DateTime.UtcNow.Add(interval), o => { callback?.Invoke(o); mre.Set(); }, state)) { mre.WaitOne(); afterTick?.Invoke(); } } }
static void Helper(TimeSpan interval, object state = null, Action<object> callback = null, Action afterTick = null) { using (var mre = new ManualResetEvent(false)) { using (var timer = new AbsoluteTimer(DateTime.UtcNow.Add(interval), o => { callback?.Invoke(o); mre.Set(); }, state)) { mre.WaitOne(); afterTick?.Invoke(); } } }