Каков будет результат записи в закрытый канал? Deadlock, паника или операция записи вернула ошибку?

В C# запись в закрытый канал (Channel) приведёт к выбросу исключения (InvalidOperationException). Это происходит потому, что закрытый канал больше не принимает данные.

Короткий ответ

Что ответить на собеседовании

В C# запись в закрытый канал (Channel) приведёт к выбросу исключения (InvalidOperationException). Это происходит потому, что закрытый канал больше не принимает данные.

Подробный разбор

Ответ с пояснениями

В C# запись в закрытый канал (Channel) приведёт к выбросу исключения (InvalidOperationException). Это происходит потому, что закрытый канал больше не принимает данные.

Пример:

var channel = Channel.CreateUnbounded<int>();
channel.Writer.Complete(); // Закрываем канал

// Попытка записи вызовет исключение
await channel.Writer.WriteAsync(42); // InvalidOperationException

Deadlock не возникнет, так как операция записи не блокируется, а сразу выбрасывает ошибку. Паника как в Go отсутствует, вместо этого используется исключение.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее