Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpCcCc 384 of 509 menu
◀ ▶

Complete на ChannelWriter в C#

Метод Complete закрывает канал для новых записей. Элементы, которые уже лежат в буфере, ещё можно прочитать.

Когда буфер пуст и канал закрыт, ReadAsync бросает ChannelClosedException. В примере число ещё лежит в канале, поэтому первое чтение его возвращает. Затем WaitToReadAsync даёт False, элементов больше нет:

using System.Threading.Channels; Channel<int> ch = Channel.CreateUnbounded<int>(); await ch.Writer.WriteAsync(2); ch.Writer.Complete(); Console.WriteLine(await ch.Reader.ReadAsync()); // выведет 2 Console.WriteLine(await ch.Reader.WaitToReadAsync()); // выведет False

Запишите в канал число 6, закройте его для новых записей и прочитайте это число. Затем выведите, остались ли в канале ещё элементы.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить