【发布时间】:2014-09-03 09:05:09
【问题描述】:
我在 .net 框架 4.5.1 下使用 Asp.net MVC 5。互联网上有很多例子展示了控制器异步操作的用法,如下所示:
public async Task<ActionResult> Practice()
{
......
SqlCommand command = new SqlCommand ();
......
await command .ExecuteNonQuery();
......
return View();
}
同时,SqlCommand提供了类似ExecuteNonQueryAsync这样的异步方法,内部实现了异步操作,代码如下:
public ActionResult Practice()
{
......
SqlCommand command = new SqlCommand ();
......
command.ExecuteNonQueryAsync();
......
return View();
}
假设所有耗时的操作都是数据库CRUD,我想知道上面两个代码sn-ps有什么区别吗?
具体来说,这两种方式是否都通向最终目标:“一个线程在等待第一个请求完成时不会被阻塞以响应其他请求。因此,异步请求可以防止请求排队和线程池增长有许多并发请求会调用长时间运行的操作。” ?
非常感谢。
【问题讨论】: