🧩 C# Channels: сообщение попало в очередь. Почему обработчик его не получил? Два воркера читают один ограниченный канал. Один из них отменяет ожидание. Продюсер успешно записывает сообщение — без исключений. using System.Threading.Channels; var queue = Channel.CreateBounded<int>( new BoundedChannelOptions(1) { FullMode = BoundedChannelFullMode.Wait }); using var cts = new CancellationTokenSource(); var firstRead =…
C# 1001 notes
Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого. admin - @haarrp
Динамика подписчиков
с 20 июля 2026 по 28 сентября 2026 · минимум 6 545 · максимум 6 640
Кто рекламировался за полгода
Рекламодатель определён по маркировке рекламы в постах канала.
Публикации
Эта задача проверяет понимание Memory<T> , pooling, ownership, IAsyncEnumerable , cancellation и одной из самых неприятных категорий ошибок высокопроизводительного C# — когда GC защищает объект от удаления, но не защищает вас от повторного использования его содержимого.
# C# 14: хитрая задача на ArrayPool , IAsyncEnumerable и время жизни памяти Есть поток данных, из которого нужно читать сообщения построчно без лишних аллокаций. Наивная реализация: static async IAsyncEnumerable<ReadOnlyMemory<byte>> ReadLinesAsync( Stream stream, [EnumeratorCancellation] CancellationToken cancellationToken = default) { byte[] buffer = ArrayPool<byte>.Shared.Rent(4096); try { while (true) { int read…
# C# 14: конкурентный кеш без race condition Реализуйте потокобезопасный кеш: public sealed class AsyncCache<TKey, TValue> where TKey : notnull { public Task<TValue> GetOrCreateAsync( TKey key, Func<CancellationToken, Task<TValue>> factory, CancellationToken cancellationToken = default) { // TODO } } Условия: если 100 потоков одновременно запросят один key, factory должна выполниться только один раз. Остальные ждут…
🔍 Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle C# разработчика. Как это будет: 📂 Александр Моргунов, старший C# разработчик с опытом 7+ лет в Европейских высоконагруженных сервисах, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Александр будет…