C# Ready | Unity (@csharp_ready) — Telegram-канал | Telegram Dialogs
Все каналы
C# Ready | Unity

C# Ready | Unity

@csharp_ready

9.7K подписчиков технологии 💬 Комментарии открыты

Авторский канал по разработке на C# и Unity. Ресурсы, гайды, задачи, шпаргалки. Информация ежедневно пополняется! Автор: @energy_c РКН: https://clck.ru/3SBaT3 Реклама на бирже: https://telega.in/c/csharp_ready

Последние публикации

C# Ready | Unity
17.07.2026 11:12 · 👁 560
Понятный разбор того, как на самом деле работает async/await в C#! В этой статье: • Чем асинхронность отличается от запуска работы в отдельном потоке • Когда await освобождает поток, а когда выполнение продолжается синхронно • Как компилятор превращает асинхронный метод в машину состояний Продолжай читать на Habr! ➡️ C# Ready | #статья
C# Ready | Unity
17.07.2026 09:12 · 👁 635
Пачку офферов заказывали? О всех трудоустройствах через ИИ-ассистента Софи ребята узнают от пользователей. И какой же кайф, когда они делятся своими историями. Вот так в чате узнали сразу о трех новых офферах: • Кейс Сергея - 2 недели в Софи и 2 оффера. • Кейс Елены - 1 неделя в Софи и оффер спустя 10 лет перерыва в работе. Елене 52 года. • Кейс Юлии - 1 месяц в Софи, свитчер из финансового аналитика в разработчика SQL. И еще один оффер🎉 Искренние поздравления ребятам и удачи им на новой работе! В следующий раз доступ в Софи откроется уже 21 июля. Если хочешь получить 3 дня бесплатного доступа - подписывайся на этот канал, все анонсы будут там.
C# Ready | Unity
16.07.2026 18:17 · 👁 782
👩‍💻 Сегодня рассмотрим Channel<T> — безопасная асинхронная очередь задач в .NET Это потокобезопасная очередь для передачи сообщений между задачами без ручных блокировок и сложной синхронизации. Что важно знать: • Работает без ручных блокировок и сложных синхронных вызовов. • Позволяет автоматически замедлять отправку при перегрузке памяти. • Обеспечивает плавную передачу данных между параллельными задачами. Так вы получаете готовый «из коробки» механизм асинхронной очереди с естественным управлением нагрузкой без лишнего кода. ➡ C# Ready | #гайд
C# Ready | Unity
16.07.2026 16:17 · 👁 799
«Снова в школу!» – звучит тревожно. Но в магистратуре МИФИ и Школы 21 «Управление внедрением искусственного интеллекта в бизнес» совсем другая атмосфера: тут нет страха ошибки и ощущения, что зря тратишь время. Зато есть рабочая среда, поддержка единомышленников и уверенность, что растёшь. Что внутри программы: — не просто алгоритмы, а живые сценарии – где применить ИИ, чтобы было лучше, быстрее, дешевле; — учим внедрять ИИ для управления продуктом от технического задания до запуска; — делаешь реальные проекты прямо во время учёбы, а не ближе к диплому; — диплом государственного образца МИФИ – одного из ведущих технических университетов страны. Подробности и заявка здесь
C# Ready | Unity
16.07.2026 12:12 · 👁 775
CancellationToken должен проходить через всю цепочку вызовов! Само наличие CancellationToken в параметрах ещё не делает операцию отменяемой: async Task SyncAsync(CancellationToken token) { var data = await LoadAsync(); await SaveAsync(data); } Если вложенные методы не получили токен, они продолжат работать даже после отмены запроса. Токен нужно передавать во все операции, которые поддерживают отмену: var data = await LoadAsync(token); await SaveAsync(data, token); await Task.Delay(500, token); Для вычислений без await запрос отмены необходимо проверять вручную: foreach (var item in items) { token.ThrowIfCancellationRequested(); Process(item); } Отмена в .NET кооперативная: Cancel() не останавливает код принудительно. Он только сообщает операциям, что работу следует завершить. Для собственного таймаута можно создать источник отмены: using var timeout = new CancellationTokenSource( TimeSpan.FromSeconds(10) ); await SyncAsync(timeout.Token); Если одновременно нужен токен вызывающего кода и внутренний таймаут, их можно объединить: using var linked = CancellationTokenSource .CreateLinkedTokenSource(token, timeout.Token); await SyncAsync(linked.Token); Передавайте CancellationToken до самого нижнего отменяемого вызова, иначе API обещает отмену, но фактическая работа продолжается. ➡️ C# Ready | #совет
C# Ready | Unity
16.07.2026 10:12 · 👁 783
IT мероприятия 🤘 Всё самое интересное для карьеры в IT: митапы, хакатоны, конференции, стажировки и обучение. Подписывайся 🤘 1. Москва 2. Санкт-Петербург 3. Для стажеров и студентов
C# Ready | Unity
16.07.2026 07:12 · 👁 919
Интересный разбор того, как сегодня создавать игры на C# без готового движка! В этой статье: • Почему C# подходит для небольших кроссплатформенных игр • Как SDL3 закрывает окна, ввод, контроллеры и рендеринг • Как организовать загрузку ассетов и собрать собственный редактор на Dear ImGui Продолжай читать на Habr! ➡️ C# Ready | #статья
C# Ready | Unity
14.07.2026 11:12 · 👁 1.1K
Почему with у record не создаёт глубокую копию? Выражение with удобно использовать для создания изменённой копии record: var updated = user with { Name = "Alex" }; Но копирование будет поверхностным. Сам record создаётся заново, а вложенные ссылочные объекты продолжают использоваться совместно. Рассмотрим record со списком: record User( string Name, List<string> Roles ); Создадим его копию и изменим список: var original = new User( "Alex", new() { "read" } ); var copy = original with { }; copy.Roles.Add("write"); Изменение появится и в исходном объекте: Console.WriteLine( original.Roles.Count ); // 2 Причина в том, что original.Roles и copy.Roles ссылаются на один экземпляр List<string>. Если списки должны быть независимыми, скопируйте коллекцию явно: var copy = original with { Roles = new List<string>( original.Roles ) }; Другой вариант использовать неизменяемые коллекции: record User( ImmutableArray<string> Roles ); var copy = original with { Roles = original.Roles.Add("write") }; Это касается не только списков, но также массивов, словарей и других изменяемых ссылочных объектов. ➡️ C# Ready | #совет
C# Ready | Unity
14.07.2026 07:12 · 👁 999
Шпаргалка по форматированию даты и времени в C#! Например, dd.MM.yyyy выведет дату с числом, месяцем и годом, HH:mm покажет время в 24-часовом формате, а MMM и MMMM позволяют получить сокращённое или полное название месяца. На картинке спецификаторы для дня, месяца, года, часов, минут, секунд, долей секунды, часового пояса и AM/PM. Для каждого варианта приведены готовый формат и пример результата. Сохрани, чтобы не потерять! ➡️ C# Ready | #ресурс
C# Ready | Unity
13.07.2026 16:12 · 👁 1K
Отправляем несколько HTTP-запросов параллельно на C#! Если данные нужно получить из нескольких независимых источников, последовательные запросы заставят программу ждать каждый ответ по очереди. Создадим HttpClient: using var client = new HttpClient { Timeout = TimeSpan.FromSeconds(10) }; Запустим три запроса без немедленного ожидания результата: Task<string> usersTask = client.GetStringAsync(usersUrl); Task<string> ordersTask = client.GetStringAsync(ordersUrl); Task<string> ratesTask = client.GetStringAsync(ratesUrl); Теперь все операции уже выполняются параллельно. Дождёмся завершения всей группы: await Task.WhenAll( usersTask, ordersTask, ratesTask ); Получим готовые результаты: string users = await usersTask; string orders = await ordersTask; string rates = await ratesTask; Если каждый запрос занимает около секунды, последовательное выполнение продлится примерно три секунды, а параллельное около одной. Добавим ограничение общего времени ожидания: using var cts = new CancellationTokenSource( TimeSpan.FromSeconds(5) ); Передадим токен отмены запросу: string data = await client.GetStringAsync( usersUrl, cts.Token ); Так приложение сможет прекратить операцию, если внешний сервис отвечает слишком долго. ➡️ C# Ready | #практика
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.