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

Метод WriteAsync

ChannelWriter.WriteAsync в неограниченном канале завершается сразу. В ограниченный полный канал без читателя ждать нельзя - в примерах используют CreateUnbounded. Мгновенная попытка - TryWrite.

Синтаксис

await writer.WriteAsync(item);

Пример

Давайте записать 1 и 2, затем прочитать FIFO:

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(1); await channel.Writer.WriteAsync(2); Console.WriteLine(await channel.Reader.ReadAsync()); Console.WriteLine(await channel.Reader.ReadAsync()); } }

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

1 2

Пример

Давайте записать одно значение и снять его:

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

Пример

Давайте записать в ограниченный канал после чтения:

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

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

1 2

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

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