我编写了一个代码来处理 Azure 服务器上的一些数据。我第一次编写代码时,它是线性的 For Each 循环并且需要永远完成,我使用 Parallel 改进了代码,如下所示:
Parallel.ForEach(users, currentUser =>
{
int number = myrollup.CountFilmsForUsers(currentUser.UserId,distort,tend).Result;
lock(myrollup)
{
var record = new UserAnalytics();
{
UserId = currentUser.UserId,
UserFName = currentUser.FirstName,
UserLName = currentUser.LastName,
};
session.SaveOrUpdate(record);
}
});
这个并行循环在 9 分钟内完成了这项工作,但是我想通过使用生产者/消费者模式来进一步改进这一点。关于如何在 C# 中使用 Nhibernate 执行此操作的任何想法?