Канал о разработке на платформе .NET с использованием языка программирования C#. Рассматриваются актуальные подходы и современные методологии разработки.
#капитану_на_заметку
Всем привет!
Вы когда-нибудь заглядывали в System.Collections.Concurrent? Если вам доводилось писать многопоточный код, скорее всего вы там были неоднократно. Как только мне нужно писать многопоточный код, я на 99% уверен, что найду там структуру данных, которая решит большинство моих технических вопросов. Но есть коллекция, которая была разработана для очень специфических случаев - ConcurrentBag<T>.
ConcurrentBag<T> - это потокобезопасная реализация коллекции, оптимизированная для сценариев, в которых один и тот же поток будет создавать и потреблять данные, хранящиеся в ней.
Не рекомендуется использовать её без предварительного бенчмаркинга (замеров производительности). Если вы на 100% не уверены, что вам нужен именно ConcurrentBag<T>, отдайте предпочтение ConcurrentQueue<T> ✅