上一篇文章我们讲诉了自定义线程执行器和任务处理器我们继续来讲解自定义线程的定时执行器,我们在很多场景下需要做到某些状态或者数据进行更新,如果事情很多很杂,很时候时候会创建很多不同的定时器那么势必会照成系统的消耗和性能低下的问题!今天我们来解决这一问题。首先我们创建定时任务执行器基 ...
上一篇文章我们讲诉了自定义get='_blank'>线程执行器和任务处理器
我们继续来讲解自定义线程的定时执行器,我们在很多场景下需要做到某些状态或者数据进行更新,如果事情很多很杂,很时候时候会创建很多不同的定时器那么势必会照成系统的消耗和性能低下的问题!今天我们来解决这一问题。
首先我们创建定时任务执行器基类
1 /// <summary> 2 /// 3 /// </summary> 4 public abstract class TimerTaskBase : BaseTask 5 { 6 7 8 /// <summary> 9 /// 开始执行的时间10 /// </summary>11 public long StartTime { get; set; }12 13 /// <summary>14 /// 是否一开始执行一次15 /// </summary>16 public bool IsStartAction { get; set; }17 18 /// <summary>19 /// 结束时间20 /// </summary>21 public long EndTime { get; set; }22 23 /// <summary>24 /// 执行次数25 /// </summary>26 public int ActionCount { get; set; }27 28 /// <summary>29 /// 已经执行的次数30 /// </summary>31 public int AActionCount { get; set; }32 33 /// <summary>34 /// 间隔执行时间35 /// </summary>36 public int IntervalTime { get; set; }37 38 /// <summary>39 /// 制定执行次数的定时任务40 /// </summary>41 /// <param name="startTime">0表示立即执行,否则延迟执行,填写开始时间</param>42 /// <param name="intervalTime">执行间隔时间,小于10毫秒,当10毫秒处理</param>43 /// <param name="isStartAction">是否一开始执行一次</param>44 /// <param name="actionCount">需要执行的次数</param>45 public TimerTaskBase(long startTime, int intervalTime, bool isStartAction, int actionCount)46 {47 this.StartTime = startTime;48 this.IntervalTime = intervalTime;49 this.IsStartAction = isStartAction;50 this.ActionCount = actionCount;51 this.EndTime = 0;52 }53 54 /// <summary>55 /// 制定结束时间的定时任务56 /// </summary>57 /// <param name="startTime">0表示立即执行,否则延迟执行,填写开始时间</param>58 /// <param name="intervalTime">执行间隔时间,小于10毫秒,当10毫秒处理</param>59 /// <param name="endTime">执行结束时间</param>60 /// <param name="isStartAction">是否一开始执行一次</param>61 public TimerTaskBase(long startTime, int intervalTime, long endTime, bool isStartAction)62 {63 this.StartTime = startTime;64 this.IntervalTime = intervalTime;65 this.IsStartAction = isStartAction;66 this.ActionCount = 0;67 this.EndTime = endTime;68 }69 70 /// <summary>71 /// 制定开始时间,无限执行任务72 /// </summary>73 /// <param name="startTime">0表示立即执行,否则延迟执行,填写开始时间</param>74 /// <param name="intervalTime">执行间隔时间,小于10毫秒,当 10 毫秒处理 建议 10 毫秒的倍数</param>75 /// <param name="isStartAction">是否一开始执行一次</param>76 public TimerTaskBase(long startTime, int intervalTime, bool isStartAction)77 {78 this.StartTime = startTime;79 this.IntervalTime = intervalTime;80 this.IsStartAction = isStartAction;81 this.ActionCount = 0;82 this.EndTime = 0;83 }84 85 public TimerTaskBase()86 {87 // TODO: Complete member initialization88 }89 }
原标题:C# 线程系列三 定时器线程
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。