Асинхронные потоки — когда данных много, а ждать не хочется!
Иногда нужно обрабатывать данные по мере их поступления — например, из сети или базы. Ждать, пока загрузится всё целиком, неудобно и неэффективно.
Для таких случаев в C# есть асинхронные потоки —
Подключим нужные пространства имён:
Создадим метод, возвращающий данные с задержкой — как будто они приходят из внешнего источника:
Теперь вызовем этот метод и выведем сообщения по мере поступления:
🔥
➡️ C# Ready | #практика
Иногда нужно обрабатывать данные по мере их поступления — например, из сети или базы. Ждать, пока загрузится всё целиком, неудобно и неэффективно.
Для таких случаев в C# есть асинхронные потоки —
IAsyncEnumerable<T>
! Они позволяют перебирать элементы в процессе получения, а не после.Подключим нужные пространства имён:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
Создадим метод, возвращающий данные с задержкой — как будто они приходят из внешнего источника:
async IAsyncEnumerable<string> GetMessagesAsync()
{
for (int i = 1; i <= 3; i++)
{
// имитируем задержку
await Task.Delay(1000);
yield return $"Сообщение #{i}";
}
}
Теперь вызовем этот метод и выведем сообщения по мере поступления:
await foreach (var msg in GetMessagesAsync())
{
Console.WriteLine($"Получено: {msg}");
}
🔥
IAsyncEnumerable
идеально подходит для работы с потоками данных: мы не блокируем поток, не храним всё в памяти, и можем реагировать на каждое новое значение сразу.Please open Telegram to view this post
VIEW IN TELEGRAM
1👍19🔥5❤4
В курсе разбираются тонкости работы C# и внутреннее устройство CLR (Common Language Runtime): работа конструкции switch, детализация if-else, методы декомпиляции JIT с помощью WinDBG, а также вопросы производительности JIT-уровней.
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍5🔥4
С его помощью можно превращать объекты в JSON и восстанавливать их из JSON, сохранять и читать данные в файлах или отправлять по сети, эффективно обрабатывать большие объёмы и изменять части JSON без лишних преобразований.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤6👍5🤝3👎1
👍10❤4🔥3
ИИ в решении задач на реальных данных компаний 🤖
На связи Всероссийский чемпионат по искусственному интеллекту RuCode.
Здесь студенты, школьники, преподаватели и специалисты соревнуются в решении практических задач с использованием методов машинного обучения и анализа данных.
✅ Задачи на реальных данных компаний
✅ Практический опыт и плюс в портфолио
✅ Шанс попасть на стажировки в крупных ИТ-компаниях и получить карьерную консультацию
✅ Сертификат МФТИ о дополнительном образовании, бесплатные курсы и интенсивы по ИИ
✅ Обмен знаниями и повышение квалификации
Чтобы не упустить столько возможностей, присоединяйтесь к RuCode прямо сейчас.
Реклама
На связи Всероссийский чемпионат по искусственному интеллекту RuCode.
Здесь студенты, школьники, преподаватели и специалисты соревнуются в решении практических задач с использованием методов машинного обучения и анализа данных.
✅ Задания уже опубликованы, а 26 октября закроется регистрация. Награждение — 13.11.
Чтобы не упустить столько возможностей, присоединяйтесь к RuCode прямо сейчас.
Реклама
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4🔥1
Кортежи
ValueTuple
позволяют возвращать из методов сразу несколько значений без создания дополнительных классов.Что важно знать:
• Можно возвращать и деконструировать значения кратко и понятно;
• ValueTuple — структура (быстрее и без лишней нагрузки на память) в отличие от Tuple;
• Поддерживает имена элементов — обращайтесь по смыслу, не по Item1.
Это структура, поэтому работают быстрее и не создают лишних аллокаций, а ещё их удобно деконструировать прямо в переменные.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥18👍7❤6🤝4
This media is not supported in your browser
VIEW IN TELEGRAM
Короткие заметки и сниппеты для повседневной разработки: работа с GameObject и компонентами, вектора и трансформации, перемещение и физика (Rigidbody), корутины и таймеры, анимации, Raycasting и NavMesh, перезагрузка сцен.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5❤4
Консольное приложение, которое принимает картинку, масштабирует её, не нарушая соотношения сторон
В этой задаче:
• Сжимает картинку так, чтобы она не искажалась визуально.
• Проверяет наличие файла перед началом обработки изображения.
• Сохраняет результат в двух вариантах с настроенным качеством.
Удобно вставлять в любую C#-программу для автоматической обработки и сохранения изображений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥6🤝6👍3