У меня есть одноэлементный класс, обрабатывающий запросы подписки и отмены подписки от разных клиентов, работающих в разных потоках. Синглтон содержит коллекцию подписчиков. Перед добавлением или удалением класс должен проверить, что элемент еще не был добавлен или удален.
Обычно я реализую это с помощью вызова List или HashSet, вызывающего Contains перед каждой операцией, но если я хочу использовать один из новых классов в пространстве имен System.Collections.Concurrent, единственный вариант, который я вижу, - это использовать ConcurrentDictionary с фиктивным значением.
Это мой лучший вариант или я что-то упускаю? Кстати, производительность не является важным фактором для рассмотрения.