Sobes.tech
Principal

Mi lesz a zárt csatornába írás eredménye? Deadlock, pánik vagy az írási művelet hibát adott vissza?

sobes.tech MI

Válasz az MI-től

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

Пример:

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

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

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