在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;
}
}
这样,你就可以监控任务的状态并在控制台输出相应的信息。你可以根据需要修改这些代码以满足你的需求。