【发布时间】:2019-12-25 04:49:13
【问题描述】:
等效的 asp.net mvc 4.0 代码是什么样的?
using System.Net;
using System.Net.Http;
using System.Web.Mvc;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace Web.Controllers
{
public class HomeController : Controller
{
private HttpClient httpClient = new HttpClient();
private static dynamic shots;
public async Task<ActionResult> Index()
{
if (shots == null)
{
try
{
var responseMessage =
await httpClient.GetAsync
("http://api.dribbble.com/shots/everyone?per_page=30");
responseMessage.EnsureSuccessStatusCode();
var value = await responseMessage.Content.ReadAsStringAsync();
shots = await JsonConvert.DeserializeObjectAsync<dynamic>(value);
}
catch (WebException)
{
}
}
return View(shots);
}
}
}
【问题讨论】:
-
这真的有效吗?疯狂! .. 得看看这个疯狂的 4.5 东西。如果我想要异步 ui 交互,我使用 ajax/json,如果我想要异步服务器工作而不需要向客户端返回数据,我可能会考虑生成线程或使用 background worker
-
任务并行库是 .NET 4 的一项功能,效果非常好。绝对没有必要使用更重更笨重的后台工作者
标签: c# asp.net-mvc-4 async-await task-parallel-library