У меня сейчас есть сценарий, который должен добавлять и удалять элементы в многопоточном состоянии
Я делаю
lock(list)
{
if(!list.Contains(item))
{
list.Add(Item);
}
}
и
lock(list)
{
if(list.Contains(item))
{
list.Remove(Item);
}
}
НоУ меня сейчас очень большая проблема с состоянием гонки.Время блокировки увеличивается и увеличивается.
Я хотел бы использовать ConcurrentBag, но у него нет метода Contains, поэтому я не могу удалить конкретный элемент, который хочу удалить.
IСейчас я использую ConcurrentDicionary в качестве временного решения.но это определенно не правильный способ сделать это.
Итак, мой вопрос, как я могу решить эту проблему?Есть ли какая-нибудь свободная реализация для подобных вещей?Потому что ни одна из коллекций под параллельным пространством имен не подходит для этой проблемы.