日期:2014-05-19  浏览次数:20812 次

timer 的处理问题
假设一张表里面有数据如下:

LoopTime           ProgUrl

20                     http://xxxx.asp?k=xxxx
20                     http://xxxx.asp?k=xxxx
20                     http://xxxx.asp?k=xxxx
30                     http://xxxx.asp?k=xxxx
30                     http://xxxx.asp?k=xxxx
30                     http://xxxx.asp?k=xxxx
120                   http://xxxx.asp?k=xxxx
120                   http://xxxx.asp?k=xxxx

LoopTime   表示循环时间(/分)   ProgUrl   表示执行页面

问题是:要怎样用timer来处理这些不同时间段?一条接一条处理。


------解决方案--------------------
你这样应该不可以,至少还需要记录每一条记录上一次的执行时间,初始化为1900-1-1,如果这样记录了就简单了,
1,查询一条记录,按上一次执行时间排序
2,如果当前记录已经到了本次执行时间,LoopTime + LastTime <= DateTime.Now, 则执行当前记录
然后转到上一步1继续运行,否则下一步3。
3,没到期,则计算还需要多长时间到期,设置timer的下一次时间间隔。
4,时间到了,转到1