Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 6386|Ответ: 3

[Источник] Используются каналы высокой производительности в очереди .NET Core

[Скопировать ссылку]
Опубликовано 2023-5-8 22:11:01 | | | |
System.Threading.Channels —Новые типы коллекций, появившиеся после .NET Core 3.0Он может использоваться для очереди сообщений, создания и потребления данных, а публичные API Writer и Reader соответствуют создателям и потребителям сообщений, что делает Channel более лаконичным и простым в использовании.

.NET/C# основан на фоновой очереди задач BlockingCollection
https://www.itsvse.com/thread-9528-1-1.html


Библиотека System.Threading.Channels:Вход по гиперссылке виден.
<T> Класс канала:Вход по гиперссылке виден.

Тип канала

Microsoft предлагает два типа каналов: один — связанный канал с ограниченной пропускной способностью, другой — неограниченный канал с неограниченной пропускной способностью.

Создайте канал с ограниченной пропускной способностью:Channel.CreateBounded<string>(100);
Создайте канал с неограниченной пропускной способностью:Channel.CreateUnbounded<string>();

Создайте неограниченное количество каналов

При создании канала вы можете настроить SingleWriter и SingleReader ChannelOptions так, чтобы указывать одного производителя и потребителя, когда канал установлен как false; если SingleWriter = true установлен, он ограничит только одного производителя одновременно записывать данные, SingleReader = true — это то же самое.


Попробуйте открыть три потока производителя и один потребительский поток с таким кодом:



Пользователь использует WaitToReadAsync, чтобы ждать чтения данных. Потребители пытаются прочитать данные только после их доступности.


В приведённом выше коде потребители читают данные по одному, чтобы выполнять операции и как их реализоватьДанные о оптовом потребительском потребленииА как насчёт обработки?

Создайте новое расширение ChannelReaderExtensions с следующим кодом:


Корректируйте потребительский код следующим образом:



(Конец)




Предыдущий:ASP.NET Core (18) Настройка простого кэша выхода OutputCache
Следующий:[Настоящий бой]. Библиотека офлайн-IP-адресов (домашняя) NET/C#
Опубликовано 2023-5-8 22:50:27 |
Учитесь учиться
Опубликовано 2023-5-12 10:07:46 |
Учитесь учиться
Опубликовано 16.05.2023 17:21:37 |
Учитесь учиться
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com