/// <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); }
/// <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); }
/// <summary>销毁定时器</summary> public void Dispose() { TimerXHelper.Remove(this); }