Информация об изменениях

Сообщение Re: Паралелльное изменение одного объекта от 12.04.2016 9:54

Изменено 12.04.2016 9:54 Vladek

Здравствуйте, e.thrash, Вы писали:

ET>Есть такой метод


ET>
ET>Calculate(Car car)
ET>{
ET>   CalculatePrice(car);
ET>   CalculateUseTime(car);
ET>}
ET>



ET>каждый из методов вычисляет и меняет независимые друг от друга данные объекта Car.


Это сейчас так, а как оно будет через полгода-год? Какой код гарантирует, что эти два метода не будут менять одни и те же данные? Или там просто камент с предупреждением висеть будет?

ET>Насколько опасным будет код если эти два метода распаллелить в Task.ContinueWhenAll ?

ET>Нужна ли в данном случае синхронизация?

Всё тайное нужно сделать явным. Разделить Car на два объекта, после вычислений собирать снова в один, например.
Re: Паралелльное изменение одного объекта
Здравствуйте, e.thrash, Вы писали:

ET>каждый из методов вычисляет и меняет независимые друг от друга данные объекта Car.


Это сейчас так, а как оно будет через полгода-год? Какой код гарантирует, что эти два метода не будут менять одни и те же данные? Или там просто камент с предупреждением висеть будет?

ET>Насколько опасным будет код если эти два метода распаллелить в Task.ContinueWhenAll ?

ET>Нужна ли в данном случае синхронизация?

Всё тайное нужно сделать явным. Разделить Car на два объекта, после вычислений собирать снова в один, например.