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

   2024-09-30 3410
核心提示:要监控 C# Task 的执行状态,可以使用以下方法:使用 Task.Status 属性:Task.Status 属性返回一个 TaskStatus 枚举值,表示任务

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

使用 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!");    }}
使用 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();    }}
使用 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 的执行状态。根据你的需求和项目类型,可以选择最适合你的方法。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号