/
d.alekseev
/
SmartMenuBot
Обзор
Документация
Войти
/
d.alekseev
/
SmartMenuBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ConsoleBot/BackgroundTasks/BackgroundTask.cs
31 строка
1021 B
d.alekseev
feat: добавить механизм фоновых задач и автосброс сценариев по таймауту
26 фев 2026, 09:13
26 фев 2026, 09:13
d397ee8
Код
Авторство
О чём код?
namespace SmartMenuBot.BackgroundTasks { public abstract class BackgroundTask(TimeSpan delay, string name) : IBackgroundTask { protected abstract Task Execute(CancellationToken ct); public async Task Start(CancellationToken ct) { while (!ct.IsCancellationRequested) { try { Console.WriteLine($"{name}. Execute"); await Execute(ct); Console.WriteLine($"{name}. Start delay {delay}"); await Task.Delay(delay, ct); } catch (OperationCanceledException) when (ct.IsCancellationRequested) { // Cancellation requested, task should stop. } catch (Exception ex) { Console.WriteLine($"{name}. Error: {ex}"); await Task.Delay(TimeSpan.FromSeconds(1), ct); } } } } }