SchedulerKit 8.6.4
dotnet add package SchedulerKit --version 8.6.4
NuGet\Install-Package SchedulerKit -Version 8.6.4
<PackageReference Include="SchedulerKit" Version="8.6.4" />
<PackageVersion Include="SchedulerKit" Version="8.6.4" />
<PackageReference Include="SchedulerKit" />
paket add SchedulerKit --version 8.6.4
#r "nuget: SchedulerKit, 8.6.4"
#:package SchedulerKit@8.6.4
#addin nuget:?package=SchedulerKit&version=8.6.4
#tool nuget:?package=SchedulerKit&version=8.6.4
SchedulerKit
Простой планировщик задач для WinForms-приложений на основе System.Windows.Forms.Timer.
Установка
dotnet add package SchedulerKit
Класс ScheduledTaskInfo
Содержит информацию о запланированной задаче.
| Свойство | Тип | Описание |
|---|---|---|
Name |
string |
Название задачи |
Interval |
TimeSpan |
Интервал выполнения |
NextRun |
DateTime |
Время следующего запуска |
API-справочник (класс TaskScheduler)
События
OnTaskCompleted
public static event Action<string>? OnTaskCompleted;
Вызывается при успешном завершении задачи. Параметр -- имя задачи.
OnTaskFailed
public static event Action<string, Exception>? OnTaskFailed;
Вызывается при ошибке в задаче. Параметры -- имя задачи и исключение.
Every(TimeSpan interval, Action action, string? name = null)
Запускает действие с указанным интервалом. Если задача с таким именем уже существует, она будет остановлена и заменена.
TaskScheduler.Every(TimeSpan.FromMinutes(5), () =>
{
RefreshData();
}, "refresh");
Daily(TimeOnly time, Action action, string? name = null)
Запускает действие ежедневно в указанное время.
TaskScheduler.Daily(new TimeOnly(9, 0), () =>
{
SendDailyReport();
}, "daily_report");
After(TimeSpan delay, Action action, string? name = null)
Выполняет действие однократно после указанной задержки. После выполнения задача автоматически удаляется.
TaskScheduler.After(TimeSpan.FromSeconds(30), () =>
{
ShowReminder();
}, "reminder");
StopAll()
Останавливает все запланированные задачи.
TaskScheduler.StopAll();
Stop(string name)
Останавливает задачу по имени.
TaskScheduler.Stop("refresh");
GetRunning()
Возвращает список информации о всех запущенных задачах в виде List<ScheduledTaskInfo>.
List<ScheduledTaskInfo> tasks = TaskScheduler.GetRunning();
foreach (var t in tasks)
Console.WriteLine($"{t.Name}: следующий запуск {t.NextRun}");
Примеры использования
Автообновление данных с обработкой событий
using SchedulerKit;
TaskScheduler.OnTaskCompleted += name =>
statusLabel.Text = $"Задача '{name}' выполнена";
TaskScheduler.OnTaskFailed += (name, ex) =>
MessageBox.Show($"Ошибка в задаче '{name}': {ex.Message}");
TaskScheduler.Every(TimeSpan.FromMinutes(1), () =>
{
dataGridView1.DataSource = LoadData();
}, "auto_refresh");
TaskScheduler.Daily(new TimeOnly(18, 0), () =>
{
CreateBackup();
}, "daily_backup");
Отложенное уведомление и мониторинг
TaskScheduler.After(TimeSpan.FromMinutes(10), () =>
{
MessageBox.Show("Прошло 10 минут!");
}, "напоминание");
var running = TaskScheduler.GetRunning();
foreach (var task in running)
listBox.Items.Add($"{task.Name} - интервал: {task.Interval}, след. запуск: {task.NextRun}");
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows was computed. net10.0-windows was computed. |
-
net8.0-windows7.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SchedulerKit:
| Package | Downloads |
|---|---|
|
ISBuilder
Information System Builder — full toolkit for building .NET 8 WinForms applications with EF Core, SQL Server. Export, CRUD, forms, charts, auth, reports, validation, themes. |
GitHub repositories
This package is not used by any popular GitHub repositories.