asp.net Application_Start中开线程的问题

wangjinchang 2009-12-10 02:48:13
先看代码,我在Global.asax中是如下写的

<script runat="server">

void Application_Start(object sender, EventArgs e)
{
System.Threading.Thread th = new System.Threading.Thread(new System.Threading.ThreadStart(SelectConnectionSql));
Application["IdeoClass_Thread"] = th;
th.Start();


}

void Application_End(object sender, EventArgs e)
{
System.Threading.Thread th = (System.Threading.Thread)Application["IdeoClass_Thread"];
th.Abort();


}

void Application_Error(object sender, EventArgs e)
{
// 在出现未处理的错误时运行的代码
try
{
System.Threading.Thread th = (System.Threading.Thread)Application["IdeoClass_Thread"];
th.Abort();
}
catch (Exception ex)
{

}
finally
{

}

}


public void SelectConnectionSql()//查看课堂是否有到期的
{

while (true)
{
ClassZkwh.Apply.Requisition re = new ClassZkwh.Apply.Requisition();
using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(re.ConnString))
{
string sql = "select * from IdeoClass where EndTime<'" + DateTime.Now.ToLocalTime() + "' and EndTime>='" + DateTime.Now.AddMinutes(-1) + "'";
System.Data.SqlClient.SqlDataAdapter ad = new System.Data.SqlClient.SqlDataAdapter(sql, con);
System.Data.DataSet set = new System.Data.DataSet();
ad.Fill(set);
if (set.Tables.Count > 0)
{
System.Data.DataTable table = set.Tables[0];
if (table.Rows.Count > 0)
{
for (int i = 0; i < table.Rows.Count; i++)
{

ASPCOMLib.NetworkClass net = new ASPCOMLib.NetworkClass();
net.CloseMeeting = int.Parse(table.Rows[i][0].ToString());

}
}
}
}
System.Threading.Thread.Sleep(60000);

}
}
</script>

我开了一个线程,当程序运行时开启线程,但是线程自己就断了。后来看了一下,如果线程开启后长时间不访问网站的话,线程就断了。不知道怎么回事。上网查了说是 IIS的应用程序池需要设置一下。不知道怎么设置。跟IIS有关系吗?请高手指点。
谢谢。。小弟分少点!忘见谅!
...全文
325 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjinchang 2009-12-11
  • 打赏
  • 举报
回复
谢谢大家的回答,我想说的是网站只要长时间无人访问的,Application_Start 就不执行了!是什么原因?
iyori 2009-12-10
  • 打赏
  • 举报
回复
iis的应用程序池 里面有默认设置的,你看看就知道了
igelf 2009-12-10
  • 打赏
  • 举报
回复
程序池默认空闲超时时间是20分钟..
chen_ya_ping 2009-12-10
  • 打赏
  • 举报
回复
我想说的是WEB程序本身就是个多线程的程序,楼主你可以看看,这个地方是不是有必要要多开个线程。

62,074

社区成员

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

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

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

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