如何监控C# Task的执行状态

avatar
作者
猴君
阅读量:0

要监控 C# Task 的执行状态,可以使用以下方法:

  1. 使用 Task.Status 属性:

Task.Status 属性返回一个 TaskStatus 枚举值,表示任务的当前状态。可以通过轮询此属性来检查任务的状态。

using System; using System.Threading.Tasks;  class Program {     static async Task Main(string[] args)     {         Task task = Task.Run(() =>         {             // 模拟长时间运行的任务             Task.Delay(2000).Wait();         });          while (!task.IsCompleted)         {             Console.WriteLine($"Task status: {task.Status}");             await Task.Delay(500);         }          Console.WriteLine("Task completed!");     } } 
  1. 使用 ContinueWith 方法:

ContinueWith 方法允许在任务完成后执行另一个任务。这可以用于在任务完成时处理结果或检查任务的状态。

using System; using System.Threading.Tasks;  class Program {     static void Main(string[] args)     {         Task task = Task.Run(() =>         {             // 模拟长时间运行的任务             Task.Delay(2000).Wait();         });          task.ContinueWith(t =>         {             if (t.IsFaulted)             {                 Console.WriteLine("Task faulted: " + t.Exception);             }             else if (t.IsCanceled)             {                 Console.WriteLine("Task canceled.");             }             else             {                 Console.WriteLine("Task completed successfully.");             }         });          Console.ReadLine();     } } 
  1. 使用 async/await 关键字:

在 C# 5.0 及更高版本中,可以使用 async/await 关键字简化异步编程。通过将方法标记为 async 并在需要等待的任务前添加 await 关键字,可以轻松地等待任务完成。

using System; using System.Threading.Tasks;  class Program {     static async Task Main(string[] args)     {         try         {             await Task.Run(() =>             {                 // 模拟长时间运行的任务                 Task.Delay(2000).Wait();             });              Console.WriteLine("Task completed successfully.");         }         catch (Exception ex)         {             Console.WriteLine("Task faulted: " + ex);         }          Console.ReadLine();     } } 

这些方法可以帮助你监控 C# Task 的执行状态。根据你的需求和项目类型,可以选择最适合你的方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!