我正在用 C# 开发一个 MVC4 网站。在将所有内容传递给视图之前,以下代码应ConcurrentBag
使用项目填充 (DisplayModels)。
Parallel.ForEach(model.Products, p =>
{
model.DisplayModels.Add(new DisplayBoardModel()
{
Market = model.Market,
Product = p
});
});
return View(model);
我发现在任何给定的执行中,DisplayModels 似乎都填充到了不同的点。好像 ForEach 在每个后台任务返回之前就完成了。
我的理解Parallel.ForEach
是它并行处理每个项目,但仍然阻塞调用线程,直到它的所有工作完成。这不正确吗?
在模型准备好之前,我还应该做些什么来阻止动作返回?使用正常foreach
工作正常