asp.net/C# 后台线程消失的问题

lylor12345678 2009-01-15 07:06:39
做了一个定时抓天气的线程, 在全局类里启动.
一开始都好,但是不久(几个小时后)天气预报就不见了,线程莫名消失了
请教高手,为什么
线程程序
public WeatherThread()
{
ThreadStart thr_start_func = new ThreadStart(threadProc);
fThread = new Thread(thr_start_func);
fThread.Name = "getWeather";
/* fThread.IsBackground = true;
fThread.Start(); //starting the thread
flag = true;
*/
}

public void trigger()
{
if (fThread.IsAlive)
{
fThread.Abort();
}
else
{
fThread.IsBackground = true;
fThread.Start();
}
}

public static void threadProc()
{
while (true)
{
try
{
getRSS();
Thread.Sleep(timeinternal * 1000);
}
catch (Exception)
{
}
}

}
}

启动部分:global.asax
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
WeatherThread Wt = new WeatherThread();
Wt.trigger();
}
...全文
333 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
vip__888 2010-03-24
  • 打赏
  • 举报
回复
up
zhangpeng_54 2010-03-24
  • 打赏
  • 举报
回复
应用程序池会定时重启的,所以线程会停止。
lylor12345678 2009-01-16
  • 打赏
  • 举报
回复
谢谢楼上回复
可是就算getRSS方法出错,我也没有抛出异常啊, 他还是应该在while循环内啊
会继续调用getRSS方法啊
popeyepower 2009-01-15
  • 打赏
  • 举报
回复
不是线程消失了. 是线程死掉了.
因为你的线程是否继续往下运行, 要取决于getRSS这个方法的运行情况.
建议再启用一个线程作为监控线程. 当你的主任务线程多少时间没有响应了, 就应该用监控线程去处理掉.
lylor12345678 2009-01-15
  • 打赏
  • 举报
回复
难道有超时的设置?

62,269

社区成员

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

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

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

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