【问题标题】:Using of Backgroundworker in asp.net在asp.net中使用Backgroundworker
【发布时间】:2013-02-08 13:08:35
【问题描述】:

谁能解释在asp.net中可以使用Backgroundworker吗? 如果这是一个坏主意,那为什么?

【问题讨论】:

    标签: asp.net backgroundworker


    【解决方案1】:

    总的来说,没有好坏之分,这完全取决于您将如何使用它,以及您是否会考虑任何预期的未来问题, 我发现这篇文章和里面的链接非常好 http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx

    几年前,菲尔·哈克(Phil Haack)写了一篇关于 ASP.NET 中的重复后台任务。他在其中指出了一些 当人们试图在 背景。阅读它,但这里是他帖子的摘要。

    与请求无关的线程中未处理的异常将 取下进程。如果您在 Web Farm 中运行您的网站,您可以 最终得到您的应用程序的多个实例,它们都试图运行 在同一时间完成相同的任务。你的网站运行的 AppDomain 可以去 由于多种原因而关闭并取消您的后台任务 它。如果你认为你可以自己写一个后台任务,那就是 很可能你会弄错。我不是在抨击你的技能,我只是 说它很微妙。另外,为什么必须这样做?

    有很多很棒的方法可以让你在后台做事 有很多库和可供选择。

    一些 ASP.NET 应用程序将托管在您数据中心的 IIS 和其他应用程序中 将托管在 Azure 云中。使用范围大致为 这个,在我看来:

    常规:Hangfire(或类似的类似开源库)用于 在 ASP.NET 网站中编写后台任务 云:Azure WebJobs 用于卸载后台任务运行的正式 Azure 功能 在您的网站之外扩展工作负载高级:Azure Worker 云服务中的角色可扩展后台处理工作负载 独立于您的网站,您需要控制机器 有很多关于如何使用 Azure WebJobs 的精彩文章和视频, 以及大量有关可扩展 Azure 云中的 Worker Roles 的文档 服务工作,但不是很多关于您托管的 ASP.NET 应用程序的方式 并轻松拥有后台服务。这里有一些。

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多