в ней и очищать в многих потоках. И иметь что-то вроде признака/или метода, который как бы переводит в режим что она модифицируется и соответственно метод что модифицироваться кончила. Время модификации максимум 5 секунд например. И чтобы когда какой то поток пытается из нее искать и она модифицируется, то он ждал максимум 5 секунд признака, что она "готова", и возвращал, то что в коллекции, или ошибку если за 5 секунд она не закончила модицицироваться. Ну и так же если кто-то пытается добавлять, очищать коллекцию без предварительного вызова метода или установки флага "Начала изменяться", то тоже получал ексепшен.
Просто я тут начал городить целый класс как обертку над BlockingCollection, с методами startedit, finishedit, add, get, fing и тд. А может есть какой-то более простой способ, кто-чего знает, может ссылки какие знаете и пришлете?
BlockingCollection
А изначально какая задача?
https://learn.microsoft.com/en-us/dotnet/api/system.collections.concurrent.blockingcollection-1?view=net-7.0
Ворочать коллекцию в оперативе целых 5 секунд, свирепо как то... а чем тогда БД не угодила?
есть сервер условно менеджмент который пингует через rabbitmq периодически другие хосты, и держит в себе кеш с их статусами, типа хост доступен или нет. И если недоступен, то вообще не дает никакие ему события посылать. Сервер изначально о других хостах ничего не знает, он только периодически обновляет у себя кеш с их статусами и если там хост есть, то он дает возможность ему чтонибудь в шине слать
Обсуждают сегодня