码迷,mamicode.com
首页 > Web开发 > 详细

webform中Global中使用定时器

时间:2020-04-20 21:15:27      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:逻辑   好的   start   资源   font   bsp   单位   new   时间   

2019-08-23
这个方法未经上线测试,记得以前测试时这个定时器在运行一段时间后就会停止,原因是IIS应用程序池的回收机制,IIS应用程序运行一段时间后如果没有数据的交互IIS会将资源回收,也就导致定时器停止运行。
 
1、不建议使用Timer,单独的使用Timer 效果是不理想的,
Timer 使用前提是 必须在时间段内有人访问或请求网站才行,如果长时间没人访问网站或者超出定时时间段就不起作用(因为IIS的线程回收机制)。
好的方式是采用线程的方式。
sleep(time)的方式!!
当程序发布后,只要你第一次访问页面,激活线程,然后Thread.Sleep(time) 定时就可以了,当然截止到你iis重启或停止。
 
2、实例
 
Thread TempHumiRecordTh;
int TimeTempHumiRecord = 30;
 
private void ThreadTempHumiRecord()
{
try
{
TimeTempHumiRecord = int.Parse(Utility.GetAppSetting("Access_GetTempHumiRecord")); //如果时间小于=0 则不跑
if (TimeTempHumiRecord > 0)
{
TempHumiRecordTh = new Thread(GetTempHumiRecord);
TempHumiRecordTh.IsBackground = true;//设为 后台线程
TempHumiRecordTh.Start();
}
}
catch
{
}
}
private void GetTempHumiRecord()
{
try
{
//要循环执行的逻辑过程
while (true)
{
Utility.GetTempHumiRecordDataByAccess();
 
Thread.Sleep(1000 * TimeTempHumiRecord);//根据指定时间刷新(单位:毫秒)
}
}
catch (Exception ex)
{
if (!ex.Message.Equals("正在中止线程。"))
{
if (TempHumiRecordTh != null)
{
try
{
TempHumiRecordTh.Abort();
}
catch { }
}
}
}
}

webform中Global中使用定时器

标签:逻辑   好的   start   资源   font   bsp   单位   new   时间   

原文地址:https://www.cnblogs.com/masonblog/p/12740534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!