Консольное приложение, которое выводит строку каждые 30 с и отчёт раз в 5 мин
В этой задаче:
• Подключаем NuGet-пакет Quartz одной командой.
• Пишем HelloJob и ReportJob, реализующие IJob.
• Настраиваем SimpleSchedule, CronSchedule и затем ScheduleJob / Start / Shutdown.
Сообщения легко заменить логами, запросами к API или записью в БД — всё по таймеру без сложных потоков.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤11🤝8🔥7
Используйте описательные методы вместо сложных условных операторов
IFЧтение длинных и запутанных условий в IF-операторах может быть затруднительным.
Лучше всего вынести логику проверки в отдельный метод (или переменную) с понятным и выразительным именем.
Имя метода должно четко отражать суть проверки, чтобы любой разработчик мог легко понять, что происходит в коде.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍14❤10👎1
Прерываем длительные задачи с CancellationToken!
Иногда задача "зависает", и нам нужно прервать её выполнение заранее. Например, при закрытии окна, нажатии "Отмена" или по таймеру.
Раньше приходилось использовать флаги и вручную проверять отмену в каждом шаге:
Такой подход громоздкий и неудобен, особенно для асинхронных операций с ожиданием.
Сейчас используем встроенный механизм
Создаём задачу, которая будет проверять токен отмены перед каждой задержкой:
Оборачиваем выполнение в try/catch, чтобы корректно обработать отмену задачи:
🔥 Теперь ты умеешь прерывать асинхронные задачи по таймеру или по событию — удобно и безопасно.
➡️ C# Ready | #практика
Иногда задача "зависает", и нам нужно прервать её выполнение заранее. Например, при закрытии окна, нажатии "Отмена" или по таймеру.
Раньше приходилось использовать флаги и вручную проверять отмену в каждом шаге:
bool cancel = false;
if (cancel) break;
Такой подход громоздкий и неудобен, особенно для асинхронных операций с ожиданием.
Сейчас используем встроенный механизм
CancellationToken с таймером отмены и try/catch:using var cts = new CancellationTokenSource();
// отмена через 3 секунды
cts.CancelAfter(3000);
Создаём задачу, которая будет проверять токен отмены перед каждой задержкой:
await Task.Run(async () =>
{
for (int i = 1; i <= 10; i++)
{
cts.Token.ThrowIfCancellationRequested();
Console.WriteLine($"Шаг {i}/10...");
await Task.Delay(1000, cts.Token);
}
});
Оборачиваем выполнение в try/catch, чтобы корректно обработать отмену задачи:
catch (OperationCanceledException)
{
Console.WriteLine("Задача отменена");
}
🔥 Теперь ты умеешь прерывать асинхронные задачи по таймеру или по событию — удобно и безопасно.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍8❤7
This media is not supported in your browser
VIEW IN TELEGRAM
Пошаговые материалы: от азов синтаксиса и первых консольных программ до мини-проектов Guess the Number и Hangman; многочастная серия «The Essential C#/.NET Handbook», статьи об асинхронности async/await, LINQ, partial-методах и коллекциях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤6🔥4
Это механизм, который позволяет объявлять реализацию прямо в интерфейсе, сохраняя совместимость со старыми реализациями и упрощая развитие API.
Что важно знать:
• Метод интерфейса теперь может иметь тело, при этом обязателен модификатор доступа;
• Класс-реализация может переопределить такой метод, но не обязан;
• Новые методы можно добавлять в интерфейс, не ломая существующие реализации.
Так вы получаете гибкий контракт, который можно расширять без «болезненных» правок по всему проекту
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19👍8❤4🤝3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥38👍7❤6🤝2👎1
👍11🔥7❤5
Они подгружают ассеты именно тогда, когда они нужны, — движок находит их локально или скачивает с
CDN по назначенному адресу, поэтому билд получается компактнее.Ключевые моменты:
• Загружает только нужные ресурсы, экономит место и память.
• Делит файлы на локальные и сетевые для гибкости.
• Позволяет обновлять игру без переустановки и долгих ожиданий.
Они уменьшают размер билда и освобождают память через
Release, делая игру плавной даже на слабых устройствах.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤6👍6🤝1