Exemple #1
0
        /// <summary>实例化一个不可重入的定时器</summary>
        /// <param name="callback">委托</param>
        /// <param name="state">用户数据</param>
        /// <param name="dueTime">多久之后开始。毫秒</param>
        /// <param name="period">间隔周期。毫秒</param>
        public TimerX(WaitCallback callback, Object state, Int32 dueTime, Int32 period)
        {
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            if (dueTime < 0)
            {
                throw new ArgumentOutOfRangeException("dueTime");
            }
            if (period < 0)
            {
                throw new ArgumentOutOfRangeException("period");
            }

            Callback = new WeakAction <Object>(callback);
            State    = state;
            Period   = period;

            NextTime = DateTime.Now.AddMilliseconds(dueTime);

            TimerXHelper.Add(this);
        }
Exemple #2
0
        /// <summary>实例化一个不可重入的定时器</summary>
        /// <param name="callback">委托</param>
        /// <param name="state">用户数据</param>
        /// <param name="dueTime">多久之后开始</param>
        /// <param name="period">间隔周期</param>
        /// <param name="usethreadpool">是否使用线程池。对于耗时短小且比较频繁的操作,不好使用线程池,减少线程切换。</param>
        public TimerX(WaitCallback callback, object state, int dueTime, int period, Boolean usethreadpool)
        {
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            if (dueTime < Timeout.Infinite)
            {
                throw new ArgumentOutOfRangeException("dueTime");
            }
            if (period < Timeout.Infinite)
            {
                throw new ArgumentOutOfRangeException("period");
            }

            Callback      = new WeakAction <object>(callback);
            State         = state;
            Period        = period;
            UseThreadPool = usethreadpool;

            NextTime = DateTime.Now.AddMilliseconds(dueTime);

            TimerXHelper.Add(this);
        }
Exemple #3
0
 /// <summary>销毁定时器</summary>
 public void Dispose()
 {
     TimerXHelper.Remove(this);
 }