在Application_Start启动后台线程,N天没人访问网站的话,感觉后台线程会停掉....
如果后台线程真的会停掉有没什么好的解决办法?
后台线程的代码是类似于这样的,理论上是不可能停掉的:        public static void ThreadStart()
        {
            while (true)
            {
                Thread.Sleep(interval);
                //.......
            }
        }

解决方案 »

  1.   


    protected void Application_Start(Object sender, EventArgs e)在这里面开线程开线程的代码最好放在一个单例里,这样可以确保只开一个线程,只要线程不出错,这个线程会一直继续下去啊,跟有没有人访问你的网站毫无关系的
      

  2.   


    被停掉的原因是你这个IIS重启了所以重启以后需要有一个人访问下你的站点,才会执行protected void Application_Start(Object sender, EventArgs e) 
      

  3.   

    新发现啊,才30分钟没人访问网站就 Application_End 了。相当地郁闷...
      

  4.   

    那是你网站设置的问题,在IIS中把应用程序池设置成一段时间无请求不自动关闭.
      

  5.   

    application_end与你的后台进程是两个东西 
    application_end只是一个触发事件的状态改变,你的后台线程可能早就停了(如果任务已完成的话)
      

  6.   

    如果线程运行过程中出错,可能会造成线程终止
    你可以在while(true)里面加上try catch试试
      

  7.   

    没有人访问20分钟IIS回收应用程序池,线程就没了。
      

  8.   


    在IIS启动前台线程也会自动回收IIS程序池