/// <summary>
 /// Initializes a new instance of the <see cref="WindowsTimerHandle"/> class.
 /// </summary>
 /// <param name="delay">The delay.</param>
 /// <param name="resolution">The resolution.</param>
 /// <param name="isPeriodic">if set to <c>true</c> [is periodic].</param>
 /// <param name="callback">The callback.</param>
 public WindowsTimerHandle(int delay, int resolution, bool isPeriodic, Action callback)
 {
     UserCallback     = callback;
     EventType        = isPeriodic ? TimerEventType.Periodic : TimerEventType.OneShot;
     InternalCallback = InternalCallbackImpl;
     TimerId          = NativeMethods.BeginTimer((uint)delay, (uint)resolution, InternalCallback, UIntPtr.Zero, (uint)EventType);
 }
 public static extern uint BeginTimer(uint delay, uint resolution, NativeTimerCallback timerCallback, UIntPtr dwUser, uint eventType);