ConcurrentBag отлично подходит для работы со списком, в который можно добавлять элементы и перечислять из множества потоков, а затем выбрасывать его, как предполагает его название:)
Как сказал Марк Байерс , вы можете пересобрать новый ConcurrentBag, который не содержит элемент, который вы хотите удалить, но вы должны защитить его от попадания нескольких потоков, используя блокировку.Это одна строка:
myBag = new ConcurrentBag<Entry>(myBag.Except(new[] { removedEntry }));
Это работает и соответствует духу, для которого был разработан ConcurrentBag.