Web网站开后台线程,后台线程能一直运行到网站停止吗?

医手 2009-05-25 09:52:59
在Application_Start启动后台线程,N天没人访问网站的话,感觉后台线程会停掉....
如果后台线程真的会停掉有没什么好的解决办法?


后台线程的代码是类似于这样的,理论上是不可能停掉的:

public static void ThreadStart()
{
while (true)
{
Thread.Sleep(interval);
//.......
}
}

...全文
539 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
BradXue 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

唉,偏偏是租的虚拟空间,没得设。
看来只好把后台线程改为前台线程了。
[/Quote]

在IIS启动前台线程也会自动回收IIS程序池
bjwtufv 2009-05-25
  • 打赏
  • 举报
回复
IIS里面设置一下
jzywh 2009-05-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 youfayoutian 的回复:]
唉,偏偏是租的虚拟空间,没得设。
看来只好把后台线程改为前台线程了。

[/Quote]


虚拟主机控制面板里面没有这个选项吗?
Hesperus 2009-05-25
  • 打赏
  • 举报
回复
如果线程运行过程中出错,可能会造成线程终止
你可以在while(true)里面加上try catch试试
che2piaopiao 2009-05-25
  • 打赏
  • 举报
回复
貌似很耗性能滴。。。
虫二二 2009-05-25
  • 打赏
  • 举报
回复
路过 UP
我看你有戏 2009-05-25
  • 打赏
  • 举报
回复

lz的意思是不是用户开一个网页就打开一个线程,是不是这样啊

这样太恐怖了吧

医手 2009-05-25
  • 打赏
  • 举报
回复
唉,偏偏是租的虚拟空间,没得设。
看来只好把后台线程改为前台线程了。
热学沸腾56 2009-05-25
  • 打赏
  • 举报
回复
学习...up
mark620 2009-05-25
  • 打赏
  • 举报
回复
对 设置下IIS试试吧。
我看你有戏 2009-05-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jzywh 的回复:]
那是你网站设置的问题,在IIS中把应用程序池设置成一段时间无请求不自动关闭.
[/Quote]

设置一下看看
bizbuy 2009-05-25
  • 打赏
  • 举报
回复
application_end与你的后台进程是两个东西


application_end只是一个触发事件的状态改变,你的后台线程可能早就停了(如果任务已完成的话)
jzywh 2009-05-25
  • 打赏
  • 举报
回复
那是你网站设置的问题,在IIS中把应用程序池设置成一段时间无请求不自动关闭.
医手 2009-05-25
  • 打赏
  • 举报
回复
新发现啊,才30分钟没人访问网站就 Application_End 了。相当地郁闷...
我看你有戏 2009-05-25
  • 打赏
  • 举报
回复

被停掉的原因是你这个IIS重启了

所以重启以后需要有一个人访问下你的站点,才会执行protected void Application_Start(Object sender, EventArgs e)
bizbuy 2009-05-25
  • 打赏
  • 举报
回复

但是在后台开的这个线程,会在线程运行完成后自动关闭,就是如果他有事情做就会一直做,直到服务重启,
但是如果任务完成了,就会自动关闭线程了
cpio 2009-05-25
  • 打赏
  • 举报
回复
没做过,可以试一下

如果没人访问,运行也没意思吧?
我看你有戏 2009-05-25
  • 打赏
  • 举报
回复

protected void Application_Start(Object sender, EventArgs e)

在这里面开线程

开线程的代码最好放在一个单例里,这样可以确保只开一个线程,

只要线程不出错,这个线程会一直继续下去啊,跟有没有人访问你的网站毫无关系的
HDNGO 2009-05-25
  • 打赏
  • 举报
回复
可以用别的方式实现。。类似。。服务
winner2050 2009-05-25
  • 打赏
  • 举报
回复 1
没有人访问20分钟IIS回收应用程序池,线程就没了。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧