Exemplo n.º 1
0
        /// <summary>
        /// 添加定时器(仅调用一次)
        /// </summary>
        /// <param name="cb">回调函数</param>
        /// <param name="interval">间隔ms</param>
        /// <param name="param">回调参数</param>
        /// <returns>返回定时器ID</returns>

        /*
         * public long AddTimer(ParamTimerCallback cb, long interval, object param)
         * {
         *  return AddTimer(cb, interval, 1, param);
         * }
         */

        /// <summary>
        /// 添加定时器(仅调用一次)
        /// </summary>
        /// <param name="cb">回调函数</param>
        /// <param name="tiggerTime">调用时间</param>
        /// <param name="param">回调参数</param>
        /// <returns>返回定时器ID</returns>
        public long AddTimer(ParamTimerCallback cb, DateTime tiggerTime, object param)
        {
            long interval = (long)((TimeSpan)(tiggerTime - DateTime.Now)).TotalMilliseconds;

            if (interval >= 0)
            {
                return(AddTimer(cb, interval, 1, param));
            }
            else
            {
                return(AddTimer(cb, 0, 1, param));
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 添加定时器
 /// </summary>
 /// <param name="cb">回调函数</param>
 /// <param name="interval">间隔ms</param>
 /// <param name="times">调用次数,-1表示一直循环</param>
 /// <param name="param">回调参数</param>
 /// <returns>返回定时器ID</returns>
 public long AddTimer(ParamTimerCallback cb, long interval, int times, object param)
 {
     lock (this)
     {
         if (interval < _precision)
         {
             interval = _precision;
         }
         ParamTimerData data = new ParamTimerData();
         data.id         = ++TimerID;
         data.interval   = interval;
         data.lastTime   = GetTime(0);
         data.timeOut    = GetTime(interval);
         data.times      = 0;
         data.totalTimes = times;
         data.cb         = cb;
         data.param      = param;
         _addList.Add(data.id, data);
         return(data.id);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 添加定时器(仅调用一次)
 /// </summary>
 /// <param name="cb">回调函数</param>
 /// <param name="tiggerTime">调用时间</param>
 /// <returns>返回定时器ID</returns>
 public long AddTimer(ParamTimerCallback cb, DateTime tiggerTime)
 {
     return(AddTimer(cb, tiggerTime, null));
 }
Exemplo n.º 4
0
 /// <summary>
 /// 添加定时器(仅调用一次)
 /// </summary>
 /// <param name="cb">回调函数(不带参数的回调)</param>
 /// <param name="interval">间隔ms</param>
 /// <returns>返回定时器ID</returns>
 public long AddTimer(ParamTimerCallback cb, long interval)
 {
     return(AddTimer(cb, interval, 1));
 }
Exemplo n.º 5
0
 /// <summary>
 /// 添加定时器
 /// </summary>
 /// <param name="cb">回调函数(不带参数的回调)</param>
 /// <param name="interval">间隔ms</param>
 /// <param name="times">调用次数,-1表示一直循环</param>
 /// <returns>返回定时器ID</returns>
 public long AddTimer(ParamTimerCallback cb, long interval, int times)
 {
     return(AddTimer(cb, interval, times, null));
 }