c#

c# continuewith能处理结果吗

小樊
81
2024-11-26 16:18:24
栏目: 编程语言

ContinueWith 是 C# 中 Task 类的一个方法,用于在任务完成后执行另一个任务。它可以处理异步操作的结果,但是需要使用 async/await 语法来处理结果。

下面是一个示例,展示了如何使用 ContinueWith 处理异步操作的结果:

using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main(string[] args)
    {
        await Task.Run(async () =>
        {
            Console.WriteLine("Start");
            await Task.Delay(1000);
            Console.WriteLine("End");
        }).ContinueWith(t =>
        {
            if (t.IsCompletedSuccessfully)
            {
                Console.WriteLine("ContinueWith: Task completed successfully");
                Console.WriteLine($"Result: {t.Result}");
            }
            else
            {
                Console.WriteLine("ContinueWith: Task failed");
                Console.WriteLine($"Exception: {t.Exception}");
            }
        });

        Console.ReadKey();
    }
}

在这个示例中,我们首先创建了一个异步任务,该任务会先输出 “Start”,然后等待 1 秒,最后输出 “End”。接下来,我们使用 ContinueWith 方法来处理这个任务的结果。如果任务成功完成,我们将输出 “ContinueWith: Task completed successfully” 和任务的结果。如果任务失败,我们将输出 “ContinueWith: Task failed” 和异常信息。

0
看了该问题的人还看了