首页  ·  知识 ·  云计算
解决定时执行代码可能跳过的问题
网友    综合  编辑:dezai   图片来源:网络
一般我们在开发项目时,可能会有些功能需要用线程去定时去处理,比如短信定时发送、数据定时统计等等。但既然是定时,一定就是一个时间点。那么程序就有可能在这
//创建一个线程
System.Threading.Thread tread03 = new System.Threading.Thread(new System.Threading.ThreadStart(Threads03));
//启动线程
tread03.Start();

void Threads03()
{
//每天12:00执行一次
DateTime temp_dt = default(DateTime);
while (true)
{
DateTime exec_dt
= DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 12:00:00");
DateTime new_dt
= DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:00"));
if (DateTime.Compare(new_dt.AddMinutes(-3), exec_dt) < 0 && DateTime.Compare(new_dt.AddMinutes(3), exec_dt) > 0)
{
if (DateTime.Compare(exec_dt, temp_dt) != 0)
{
//在为里写相关功能处理代码
temp_dt = exec_dt;
}
}
System.Threading.Thread.Sleep(
60000); //休眠一分钟
}
}
本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读