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 分で完了しますが、Producer / Consumer パターンを使用してこれをさらに改善したいと考えています。C# で Nhibernate を使用してこれを行う方法についてのアイデアはありますか?