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