温馨提示×

如何在C#中创建自定义Promise

c#
小樊
102
2024-07-22 21:42:05
栏目: 编程语言

在C#中创建自定义Promise可以通过创建一个包含异步操作的方法来实现。以下是一个简单的示例,通过创建一个名为CustomPromise的类来实现自定义Promise:

using System;
using System.Threading.Tasks;

public class CustomPromise
{
    public Task<string> DoAsyncOperation()
    {
        var taskCompletionSource = new TaskCompletionSource<string>();

        // 模拟一个异步操作
        Task.Delay(2000).ContinueWith(task =>
        {
            if (task.IsCompletedSuccessfully)
            {
                taskCompletionSource.SetResult("Operation completed successfully");
            }
            else
            {
                taskCompletionSource.SetException(task.Exception);
            }
        });

        return taskCompletionSource.Task;
    }
}

class Program
{
    static async Task Main()
    {
        var customPromise = new CustomPromise();
        var result = await customPromise.DoAsyncOperation();

        Console.WriteLine(result);
    }
}

在上面的示例中,CustomPromise类包含一个名为DoAsyncOperation的方法,该方法返回一个Task对象。在DoAsyncOperation方法中,创建了一个TaskCompletionSource对象,并在异步操作完成后根据操作的结果设置TaskCompletionSource的结果或异常。通过await关键字在Main方法中等待异步操作的结果,并打印输出结果。

需要注意的是,虽然可以手动创建自定义Promise类来处理异步操作,但C#中已经内置了Task类和async/await关键字来简化异步编程,推荐优先使用内置的异步操作方式。

0