c#

c# taskscheduler如何监控任务状态

小樊
84
2024-11-25 14:00:48
栏目: 编程语言

在C#中,使用TaskScheduler类来调度和执行任务。要监控任务的状态,你可以通过以下方法:

  1. 创建一个自定义任务类,该类继承自Task类,并重写Execute方法。在这个方法中,你可以添加代码来更新任务的状态。
public class CustomTask : Task
{
    public enum TaskStatus
    {
        NotStarted,
        Running,
        Completed,
        Failed
    }

    public TaskStatus Status { get; private set; }

    protected override void Execute()
    {
        try
        {
            // 执行任务的代码
            Status = TaskStatus.Completed;
        }
        catch (Exception ex)
        {
            Status = TaskStatus.Failed;
            // 可以选择记录异常信息
        }
    }
}
  1. 创建一个任务调度器实例,并将自定义任务添加到调度器中。
TaskScheduler taskScheduler = new TaskScheduler();
CustomTask customTask = new CustomTask();

// 将任务添加到调度器
TaskInfo taskInfo = taskScheduler.CreateTask(customTask);
taskInfo.Start();
  1. 为了监控任务状态,你可以创建一个定时器,定期检查任务的状态。
System.Windows.Forms.Timer statusTimer = new System.Windows.Forms.Timer();
statusTimer.Interval = 1000; // 设置定时器间隔为1秒
statusTimer.Tick += (sender, e) => CheckTaskStatus(customTask);
statusTimer.Start();

void CheckTaskStatus(CustomTask task)
{
    switch (task.Status)
    {
        case CustomTask.TaskStatus.NotStarted:
            Console.WriteLine("任务尚未开始");
            break;
        case CustomTask.TaskStatus.Running:
            Console.WriteLine("任务正在运行");
            break;
        case CustomTask.TaskStatus.Completed:
            Console.WriteLine("任务已完成");
            break;
        case CustomTask.TaskStatus.Failed:
            Console.WriteLine("任务失败");
            break;
    }
}

这样,你就可以监控任务的状态并在控制台输出相应的信息。你可以根据需要修改这些代码以满足你的需求。

0
看了该问题的人还看了