如何在Orchard模块中实现多线程?

3

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

我有一个模块,其中控制器提供了一种执行DB同步的操作,该操作需要很长时间。该操作基本上会对几百个项执行for循环,而每个项都可以独立处理/同步。

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

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

等等。

在不绕过 Orchard 中已实施/提供的优化的情况下,如何最好地改进 for 循环的性能呢?


1
你的瓶颈在哪里? - Szymon Seliga
@Szymonides 在我发布这个问题的时候,我需要优化一个在模块控制器操作中执行的同步任务,请参见https://dev59.com/1pPfa4cB1Zd3GeqPHsaH#35230193。但后来我想这是一个好主意,问一个普遍的问题,因为我在网上没有找到关于Orchard与线程相关的任何信息。 - ViRuSTriNiTy
从ASP.NET应用程序中启动新线程几乎从来不是一个好主意。 - Bertrand Le Roy
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接