/// <summary> /// 定时执行TimerItem /// </summary> /// <param name="id">Id</param> /// <param name="callback">回调函数</param> /// <param name="paras">回调函数参数</param> /// <param name="timePoints">时间点列表,时间点数值为某日初到指定时间点所间隔的秒数</param> /// <param name="week">执行的周日</param> /// <param name="times">执行的次数</param> public TimerItemTiming(object id, Action <object[]> callback, object[] paras, List <Double> timePoints, EWeek week = EWeek.Everyday, int times = 1) : base(id, callback, paras, times) { if (timePoints.Count == 0) { throw new Exception("至少需要设置一个时间点"); } m_timePoints = timePoints; timePoints.Sort(); m_week = week; }
EWeek DayOfWeekConvertToEWeek(DayOfWeek dayOfWeek) { EWeek week = EWeek.Monday; switch (dayOfWeek) { case DayOfWeek.Friday: week = EWeek.Friday; break; case DayOfWeek.Monday: week = EWeek.Monday; break; case DayOfWeek.Saturday: week = EWeek.Saturday; break; case DayOfWeek.Sunday: week = EWeek.Sunday; break; case DayOfWeek.Thursday: week = EWeek.Thursday; break; case DayOfWeek.Tuesday: week = EWeek.Tuesday; break; case DayOfWeek.Wednesday: week = EWeek.Wednesday; break; } return(week); }
/// <summary> /// 添加绝对时间Timer /// </summary> /// <param name="callback">回调</param> /// <param name="paras">参数</param> /// <param name="timePoints">时间点列表,时间点数值为某日初到指定时间点所间隔的秒数</param> /// <param name="week">执行的周日</param> /// <param name="times">执行的次数</param> /// <returns></returns> public static object Add(Action <object[]> callback, object[] paras, List <double> timePoints, EWeek week = EWeek.Everyday, int times = 1) { if (callback == null) { SvLogger.Error("添加无效Timer"); return(null); } object id = new object(); var titem = new TimerItemTiming(id, callback, paras, timePoints, week, times); titem.Init(); Add(titem); return(titem.ID); }