private static void StaticCallback(IntPtr loop, IntPtr watcher, EventTypes revents) { UnmanagedTimerWatcher iow = (UnmanagedTimerWatcher)Marshal.PtrToStructure(watcher, typeof(UnmanagedTimerWatcher)); GCHandle gchandle = GCHandle.FromIntPtr(iow.data); TimerWatcher w = (TimerWatcher)gchandle.Target; w.callback(w.Loop, w, revents); }
public TimerWatcher(TimeSpan after, TimeSpan repeat, Loop loop, TimerWatcherCallback callback) : base(loop) { this.callback = callback; unmanaged_watcher = new UnmanagedTimerWatcher(); unmanaged_watcher.callback = unmanaged_callback_ptr; unmanaged_watcher.after = after.TotalSeconds; unmanaged_watcher.repeat = repeat.TotalSeconds; InitializeUnmanagedWatcher(unmanaged_watcher); }
public TimerWatcher(TimeSpan after, TimeSpan repeat, Loop loop, TimerWatcherCallback callback) : base(loop) { this.callback = callback; unmanaged_watcher = new UnmanagedTimerWatcher (); unmanaged_watcher.callback = CallbackFunctionPtr; unmanaged_watcher.after = after.TotalSeconds; unmanaged_watcher.repeat = after.TotalSeconds; InitializeUnmanagedWatcher (unmanaged_watcher); }