首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp .Net后台工作线程

Asp .Net后台工作线程
EN

Stack Overflow用户
提问于 2015-09-07 17:46:35
回答 2查看 1.2K关注 0票数 1

我打算在一个ASP .net网站(global.asax内部)的应用程序启动事件中启动一个后台线程。

我在许多地方读到过,这不是一个好的做法,因为这个线程可能会使整个IIS进程崩溃,或者可能导致其他问题。

我需要启动一个定期连接到另一台服务器并更新数据库的后台线程,因此:

这种情况下的最佳实践是什么?我是否可以将线程标记为后台,以便在其他线程停止时自动停止?如果在这种情况下启动线程不是一个好的选择,那么最好的替代方案是什么?

EN

回答 2

Stack Overflow用户

发布于 2015-09-07 18:19:37

请注意,当AppDomain回收时,ASP.NET中的任何后台工作都可能在没有警告的情况下消失。Windows服务和计划任务没有太多理由消失,但它们也可以消失(重启、部署、蓝屏、断电,或者是代码中的某个bug!)。

你必须能够容忍任何工作的消失。只要是这种情况,你就可以安全地开始后台工作。

你可以使用一个计时器,或者更简单的一个任务:

代码语言:javascript
复制
while (true) {
 DoWork();
 await Task.Delay(...);
}

一定要记录错误。

票数 3
EN

Stack Overflow用户

发布于 2015-09-07 18:12:04

考虑使用Azure。在那里,您可以使用WebJob或WorkerRole

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

https://stackoverflow.com/questions/32435626

复制
相关文章

相似问题

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