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

Метод CreateUnbounded

Channel.CreateUnbounded не отказывает в TryWrite, пока канал не закрыт. С лимитом - CreateBounded. Обзор - Channel.

Синтаксис

Channel<int> channel = Channel.CreateUnbounded<int>();

Пример

Давайте дважды успешно вызвать TryWrite:

using System; using System.Threading.Channels; using System.Threading.Tasks; class Program { static async Task Main() { var channel = Channel.CreateUnbounded<int>(); bool first = channel.Writer.TryWrite(1); bool second = channel.Writer.TryWrite(2); Console.WriteLine(first); Console.WriteLine(second); } }

Результат выполнения кода:

True True

Пример

Давайте записать через WriteAsync и прочитать:

using System; using System.Threading.Channels; using System.Threading.Tasks; class Program { static async Task Main() { var channel = Channel.CreateUnbounded<int>(); await channel.Writer.WriteAsync(12345); int res = await channel.Reader.ReadAsync(); Console.WriteLine(res); } }

Результат выполнения кода:

12345

Пример

Давайте проверить, что после Complete запись не проходит:

using System; using System.Threading.Channels; using System.Threading.Tasks; class Program { static async Task Main() { var channel = Channel.CreateUnbounded<int>(); channel.Writer.Complete(); bool res = channel.Writer.TryWrite(1); Console.WriteLine(res); } }

Результат выполнения кода:

False

Смотрите также

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