这是有关Orchard多线程的常见问题。
我有一个模块,其中控制器提供了一种执行DB同步的操作,该操作需要很长时间。该操作基本上会对几百个项执行for循环,而每个项都可以独立处理/同步。
在研究如何提高性能时,我发现了几种可能的解决方案:
async
/await
关键字- 并行 for 循环
Orchard.Environment.Work<>
Orchard.Caching.IParallelCacheContext
Orchard.Caching.ITask
async
控制器操作(还与返回值Task<>
结合使用)
等等。
在不绕过 Orchard 中已实施/提供的优化的情况下,如何最好地改进 for 循环的性能呢?