Да, конечно.
С потоками еще сложнее. Можно попытаться безобидно (как бы с свободного пути) прочитать из другого потока данные элемента (например Math.Result), в то время, как основной поток может заниматься вычислениями по doOperation.
Есть вероятность, что одна половинка Real-данных будет от старых данных, а одна от новых. А вместе - бред сивой кобылы.
И называется это конфликт данных.
В итоге -- вроде прекрасно работает программа... Но раз в месяц фигню какую-то выдает. И пойди найди потом ошибку.
Дешевле, таких глупостей не делать сразу. Чем потом потом месяцами чесать в репе.
Для многопоточных задач существуют виндячие техники синхронизации потоков. Ну это уже отдельный разговор
Ответов: 9906
Рейтинг: 351
|
|||
карма: 9 |
|