Здравствуйте, Qbit86, Вы писали:
Q>Возможно, для этих целей лучше подходит Channel<T>
Спасибо. но это немножко не то.
Идея сделать асинхронный последовательный доступ к общему хранилищу.
а эти классы удаляют полученное значение из коллекции при чтении.
Может быть конечно, достаточно ConcurrentBag<T>, но я не уверен, есть ли гарантия что например, я читаю объект, а его заменили на новый или удалили.
Вообще почтовый ящик отличная абстракция позволяет закодить взаимодействие акторов без блокировок и синхронизации, т.к. все обращения обрабатываются в порядке очереди.
по идее BufferedBlock.Post можно отправить коллбэк который вернет нужные данные. Но все равно странно что нет простой реализации в базовой библиотеке.
в той же кложе аж несколько штук и агент и атом и еще забыл название.