在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;
}
}
這樣,你就可以監控任務的狀態并在控制臺輸出相應的信息。你可以根據需要修改這些代碼以滿足你的需求。