Где именно я должен использовать блокировку объектов?
List<Car> cars = _repository.GetCars();
List<CarModel> carModels = new List<CarModel>();
Parallel.For(0, cars.Count(), new ParallelOptions { MaxDegreeOfParallelism = 4 },
index =>
{
using (UnitOfWork uow = new UnitOfWork(UnitOfWorkNestingOption.CreateNewIndependentRoot))
{
uow.TransactionIsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
Car car = cars[index];
CarModel carModel = new CarModel();
carModel.Colour = car.Colour;
carModel.Wheels = new List<Wheels>();
foreach (var wheel in car.Wheels)
{
Wheel wheelCopy = new Wheel();
wheelCopy.Brand = wheel.Brand;
carModel.Wheels.Add(wheelCopy);
}
carModels.Add(carModel);
}
});
Какой .Добавить в список, я должен заблокировать? Нужно ли блокировать список, созданный внутри l oop
carModel.Wheels.Add(wheelCopy);
, или мне нужно заблокировать только список, инициализированный за пределами l oop?
* 1008? *
Или мне не нужно ничего блокировать?