public int Main( string[] args ) { TimerWatcher tw = new TimerWatcher( TimeSpan.FromSeconds( 1 ), TimeSpan.FromSeconds( 1 ), (LibEvLoop)IOLoop.Instance.EventLoop, ( l, w, et ) => Console.WriteLine( "{0}: Beep", DateTime.Now )); tw.Start(); return 0; }
public int ScheduleTimer( TimeSpan after, Action<int> onTimer ) { if( freeList.Count == 0 ) growWatchers( watchers.Length * 2 ); int ret = freeList.Dequeue(); TimerWatcher tw = new TimerWatcher( after, TimeSpan.MaxValue, (LibEvLoop)loop.EventLoop, ( l, w, et ) => { w.Stop(); watchers[ret] = null; freeList.Enqueue( ret ); onTimer( ret ); } ); watchers[ret] = tw; tw.Start(); return ret; }
public void SetHandle(IntPtr handle) { if (this.handle != IntPtr.Zero && this.handle != handle) Close (); this.handle = handle; read_watcher = new IOWatcher (handle, EventTypes.Read, ioloop.EventLoop, HandleIOReadEvent); write_watcher = new IOWatcher (handle, EventTypes.Write, ioloop.EventLoop, HandleIOWriteEvent); timeout_watcher = new TimerWatcher (TimeOut, TimeOut, ioloop.EventLoop, HandleTimeoutEvent); timeout_watcher.Start (); }
public void AddTimeout(Timeout timeout) { TimerWatcher t = new TimerWatcher (timeout.begin, timeout.span, evloop, HandleTimeout); t.UserData = timeout; t.Start (); }
/// <summary> /// true if all is well, false if timed out /// </summary> public void OnComplete( Action<bool> whenComplete, TimeSpan timeOut ) { if( WorkPending == 0 ) whenComplete( true ); else { timedWhenComplete = whenComplete; watcher = new TimerWatcher( timeOut, TimeSpan.MaxValue, (LibEvLoop)loop.EventLoop, ( l, w, et ) => { w.Stop(); timedWhenComplete = null; whenComplete( false ); }); watcher.Start(); } }
public int ScheduleRepeatingTimer( TimeSpan interval, Action<int> onTimer ) { if( freeList.Count == 0 ) growWatchers( watchers.Length * 2 ); int ret = freeList.Dequeue(); TimerWatcher tw = new TimerWatcher( interval, interval, (LibEvLoop)loop.EventLoop, ( l, w, et ) => onTimer( ret )); watchers[ret] = tw; tw.Start(); return ret; }