在C#中,使用TaskScheduler
类来调度和执行任务。要监控任务的状态,你可以通过以下方法:
- 创建一个自定义任务类,该类继承自
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; // 可以选择记录异常信息 } } }
- 创建一个任务调度器实例,并将自定义任务添加到调度器中。
TaskScheduler taskScheduler = new TaskScheduler(); CustomTask customTask = new CustomTask(); // 将任务添加到调度器 TaskInfo taskInfo = taskScheduler.CreateTask(customTask); taskInfo.Start();
- 为了监控任务状态,你可以创建一个定时器,定期检查任务的状态。
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; } }
这样,你就可以监控任务的状态并在控制台输出相应的信息。你可以根据需要修改这些代码以满足你的需求。