/// <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)); } }
/// <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); } }
/// <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)); }
/// <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)); }
/// <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)); }