Информация об изменениях

Сообщение Re[3]: ChannelReader<T> от 06.04.2021 3:30

Изменено 06.04.2021 3:34 vdimas

Re[3]: ChannelReader<T>
Здравствуйте, varenikAA, Вы писали:

Q>>Возможно, для этих целей лучше подходит Channel&lt;T&gt;

AA>Спасибо. но это немножко не то.

Как раз то.
Каждая заинтересованная в получении писем сущность начинает работу с асинхронного запроса письма из почтового ящика.


AA>Идея сделать асинхронный последовательный доступ к общему хранилищу.


Строго говоря, последовательный доступ всегда синхронный, ну да ладно, терминология современного донета малость загоняет, разводит путаницу на ровном месте.

В общем, требуется просто последовательный доступ.
Примерно так:
http://www.rsdn.org/forum/dotnet/7947025


AA>Вообще почтовый ящик отличная абстракция позволяет закодить взаимодействие акторов без блокировок и синхронизации, т.к. все обращения обрабатываются в порядке очереди.


Блокировка/синхронизация никуда не делись.
Просто раньше очередь ожидающих активностей (процессов, потоков) была на уровне механизмов ОС, а через async/await эта очередь живёт на юзверском уровне, но по-сути она в точности такая же.
Re[3]: ChannelReader<T>
Здравствуйте, varenikAA, Вы писали:

Q>>Возможно, для этих целей лучше подходит Channel&lt;T&gt;

AA>Спасибо. но это немножко не то.

Как раз то.
Каждая заинтересованная в получении писем сущность начинает работу с асинхронного запроса письма из почтового ящика.
Происходящее с т.з. активности — блокирующий вызов, т.е. подписка на событие готовности.


AA>Идея сделать асинхронный последовательный доступ к общему хранилищу.


Строго говоря, последовательный доступ всегда синхронный, ну да ладно, терминология современного донета малость загоняет, разводит путаницу на ровном месте.

В общем, требуется просто последовательный доступ.
Примерно так:
http://www.rsdn.org/forum/dotnet/7947025


AA>Вообще почтовый ящик отличная абстракция позволяет закодить взаимодействие акторов без блокировок и синхронизации, т.к. все обращения обрабатываются в порядке очереди.


Блокировка/синхронизация никуда не делись.
Просто раньше очередь ожидающих активностей (процессов, потоков) была на уровне механизмов ОС, а через async/await эта очередь живёт на юзверском уровне, но по-сути она в точности такая же.