在Global.asax文件中,调用一个类的方法,让一个循环始终在运行(每小时一次),每次循环调用一个处理函数Work()现在的问题是:运行不稳定,并没有每个小时都循环,而且有个大概的规律,即:上班时,有比较多的人访问时,运行比较正常;但是在下班时,几乎无人访问时,循环就不执行,直到第二天上班后,恢复。周六周日也不执行。请问为什么,如何解决?以下是执行循环的代码:
for(;;)
{
    WriteLog("Start Check");
    Thread.Sleep(3600 * 1000);
    WriteLog("Work Start");
    Work();
}

解决方案 »

  1.   

    To: ghchen()
    是在一个函数中写的,这个函数在global.asax启动时就被调用,并且始终在运行。
      

  2.   

    是在一个函数中写的,这个函数在global.asax启动时就被调用,并且始终在运行。==============================
    如果不在上班时间,比如星期六、星期天,根本没有人去触发程序,肯定不执行了。而且我觉得你这个程序还需要加一个判断,否则已经在运行了,又不断被访问你网站的人触发,你怎么保证线程安全?你需要设一个标记,如果程序已经在运行,就不再被触发,否则才由global.asax里的函数触发执行。