在C#中,可以使用Task類來實現Promise模式,用于資源加載的異步操作。以下是一個簡單的示例代碼,演示如何使用Promise模式加載資源:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class ResourceLoader
{
public async Task<string> LoadResource(string url)
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
}
class Program
{
static async Task Main(string[] args)
{
ResourceLoader loader = new ResourceLoader();
string url = "https://www.example.com/resource.txt";
Task<string> loadTask = loader.LoadResource(url);
Console.WriteLine("Loading resource...");
string resource = await loadTask;
Console.WriteLine("Resource loaded:");
Console.WriteLine(resource);
}
}
在上面的代碼中,ResourceLoader類負責加載資源,LoadResource方法使用HttpClient發送HTTP請求獲取資源內容,并返回一個Task
通過這種方式,我們可以使用Promise模式實現資源加載的異步操作,避免阻塞主線程,提高程序的性能和用戶體驗。