Exemplo n.º 1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="period_ms"></param>
 /// <param name="type"></param>
 public MultimediaTimer(int period_ms)
 {
     this.Tick      = 0;
     this.Period_ms = period_ms;
     // Define tick period
     this._TickPeriod = TimeSpan.FromMilliseconds(Period_ms);
     // save callback to prevent the garbage collector to release it
     this._LPTimerCallBack = m_LPTimerCallBack;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Stop the timer
        /// </summary>
        /// <returns></returns>
        public bool Stop()
        {
            // Terminate multimedia time event
            int err = timeKillEvent(_TimerId);

            // release callbacks for garbage collector
            this._LPTimerCallBack = null;
            this.Handler          = null;
            // Ensure all callbacks are drained before leaving to caller
            for (int i = 0; i < 10; i++)
            {
                Thread.Sleep(this.Period_ms);
            }
            // Restore OS granularity
            RestoreTickGranularityOnWindows();
            return(err == 0);
        }
Exemplo n.º 3
0
 static protected extern int timeSetEvent(int delay, int resolution, _LPTimeCallbackType handler, IntPtr user, int eventType);