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

Неграниченный канал в C#

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

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

Запишем число 1 и сразу прочитаем его. Для одного уже лежащего элемента канал закрывать не нужно:

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

Создайте канал без лимита длины. Запишите в него строку "ping" и сразу выведите её в консоль.

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