C# web Application_Start 问题

我在Applicaition_Start中写了些代码,定时获取一些数据,获取一次数据后用Thread.Sleep停止一段时间,可是现在我发现如果我定制5分钟,就没问题,可... 我在Applicaition_Start中写了些代码,定时获取一些数据,获取一次数据后用Thread.Sleep 停止一段时间,可是现在我发现如果我定制5分钟,就没问题,可是如果停止时间长一些,就不行了,求解 展开
 我来答
youbl
2012-07-12 · TA获得超过2510个赞
知道大有可为答主
回答量:1844
采纳率:62%
帮助的人:1681万
展开全部
Applicaition_Start只是在站点启动时,才会执行一次,而且启动的是属于IIS的线程,IIS的线程是随时都有可能被回收的
建议你开发一个WindowsService去获取数据,而不是通过Asp.net来实现
追问
知道服务能更好的解决,只是看到网上还有这种方法,想实验一下,能说下在什么情况下会被回收吗?
追答
这个,.net的GC回收,是无法确定什么时间,什么情况下进行回收
MSDN里说:
在大多数情况下,垃圾回收器可以确定执行回收的最佳时间,应让其独立运行。

垃圾回收器跟踪并回收托管内存中分配的对象。垃圾回收器定期执行垃圾回收以回收分配给没有有效引用的对象的内存。当使用可用内存不能满足内存请求时,垃圾回收会自动进行。
21d801
2012-07-12 · TA获得超过660个赞
知道小有建树答主
回答量:830
采纳率:100%
帮助的人:919万
展开全部
1 你是新建一个线程并在其之上进行操作?
2 如果你是母页模板的话,可以利用iframe定时刷新获取数据
追问
新建了一个线程  
没用iframe
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
石哥在拌饭
2012-07-12 · TA获得超过530个赞
知道小有建树答主
回答量:573
采纳率:100%
帮助的人:569万
展开全部
你可以使用 任务调度“Quartz”,这个东西是开源的,在.net中也有相应的DLL,使用比较简单。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yi_mzy
2012-07-12 · 超过34用户采纳过TA的回答
知道答主
回答量:143
采纳率:0%
帮助的人:65.8万
展开全部
Applicaition_Start只是在站点启动时,如果你是想在网站上定时刷新数据,建议你用ajax+JS的定时去获取
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草薙在
2012-07-12 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6338万
展开全部
干嘛用Thread.Sleep,干扰应用程序启动,如果时间长了的话HttpRuntime会直接收回控制权的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cjave
2012-07-12 · 超过28用户采纳过TA的回答
知道答主
回答量:223
采纳率:20%
帮助的人:39.6万
展开全部
共同学习
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式