在ASP.NET MVC(C#)中进行异步并行网络请求的解决方法可以使用异步编程模型(asynchronous programming model,简称APM)或异步任务模型(async/await)。
下面是两种方法的代码示例:
使用APM模型:
public async Task Index()
{
// 创建一个WebRequest对象
WebRequest request = WebRequest.Create("http://api.example.com/data");
// 异步获取响应
WebResponse response = await Task.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null);
// 读取响应数据
using (Stream stream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(stream))
{
string result = await reader.ReadToEndAsync();
// 在此处处理响应数据
}
}
return View();
}
使用异步任务模型(async/await):
public async Task Index()
{
// 创建一个HttpClient对象
HttpClient client = new HttpClient();
// 发送异步GET请求
HttpResponseMessage response = await client.GetAsync("http://api.example.com/data");
// 读取响应数据
string result = await response.Content.ReadAsStringAsync();
// 在此处处理响应数据
return View();
}
在上述代码示例中,我们使用了异步关键字async和await,以及相应的异步方法(如BeginGetResponse和EndGetResponse)来实现异步并行网络请求。在异步操作完成后,我们可以在回调函数或使用await关键字后的代码块中处理响应数据。