首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET和计时器的问题

ASP.NET和计时器的问题
EN

Stack Overflow用户
提问于 2018-08-20 11:18:01
回答 2查看 0关注 0票数 0

考虑这段代码......

代码语言:javascript
复制
using System.Threading;
//...
Timer someWork = new Timer(
    delegate(object state) {
        //Do some work here...
    },
    null, 0, 60000);

HttpContext.Current.Application["SomeWorkItem"] = someWork;

这可能有危险吗?在应用程序中缓存计时器以在站点运行时在后台执行某些工作似乎是安全的,但我想知道是否有人对此有一些经验。

EN

回答 2

Stack Overflow用户

发布于 2018-08-20 19:29:35

这通常是一个坏主意,因为System.Threading.Timer使用ThreadPool中的线程,与ASP.Net相同。

如果由于任何原因你的计时器委托阻止或停止,计时器将在超时期限之后开始一个新的线程,这将进入可用于ASP.net的线程。

如果他们都开始阻止,实际上你将无法再提供任何网络请求(可能是一件坏事)

票数 0
EN

Stack Overflow用户

发布于 2018-08-20 20:51:01

这样做的问题是你不能保证这个过程仍然存在。IIS基本上会在进程想要的时候收回它,因此会冒没有执行它的风险。

如果你需要完成这项工作,那么你需要将其编码到一个Web调用中,或者让一个服务在服务器的后台运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档