List
или HashSet
или что-либо еще встроило ориентированный на многопотоковое исполнение для дополнения только?
Мой вопрос подобен Ориентированному на многопотоковое исполнение и универсальному arraylist? но я только ищу безопасность для покрытия добавления к этому поточному списку, не удаление или чтение из него.
.NET 4.0, вы можете использовать BlockingCollection
, но он по-прежнему спроектирован для обеспечения безопасности потоков для всех операций, а не только для сложения.
В общем, разработка структуры данных, которая гарантирует, что одни операции будут безопасными для параллелизма, а другие нет, - это редкость. Если вас беспокоят накладные расходы при доступе к коллекции для чтения, вам следует провести сравнительный анализ, прежде чем вы изо всех сил стараетесь искать специализированные коллекции, чтобы справиться с этим.