【问题标题】:How to implement multi threading in Orchard Modules?如何在 Orchard 模块中实现多线程?
【发布时间】:2016-02-04 08:15:40
【问题描述】:

这是 Orchard 中有关多线程的常见问题。

我有一个带有控制器的模块,它提供了一个执行数据库同步的操作,这需要很长时间。该操作基本上对数百个项目执行 for 循环,而每个项目都可以独立处理/同步。

在研究如何提高性能时,我遇到了几种可能的解决方案

  • async / await 关键字
  • 并行for循环
  • Orchard.Environment.Work<>
  • Orchard.Caching.IParallelCacheContext
  • Orchard.Caching.ITask
  • async 控制器动作(还结合返回值Task<>

还有更多。

在不绕过 Orchard 中已经实现/提供的可能优化的情况下提高 for 循环性能的最佳方法是什么?

【问题讨论】:

  • 你的瓶颈是什么?
  • @Szymonides 在我发布这个问题时,我必须优化在模块的控制器操作中执行的同步任务,请参阅stackoverflow.com/a/35230193/3936440。但后来我认为问一个常见问题是个好主意,因为我在网上没有找到任何关于与 Orchard 相关的线程。
  • 从 ASP.NET 应用程序中旋转新线程几乎从来都不是一个好主意。

标签: c# multithreading module orchardcms


【解决方案1】:

【讨论】:

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