Неизменяемость общих данных может показаться непрактичной для разработчиков, не привыкших к функциональному программированию, но на самом деле это не только возможно, но и является хорошим техническим решением
C# Concurrency. Асинхронное программирование и многопоточность
·
Нир Добовицки