在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關鍵字來簡化異步編程,推薦優先使用內置的異步操作方式。