我的一位同事重构了我们的控制器方法,以便我们所有的 IO 操作,包括同步操作,都封装在单独的任务中,然后所有这些任务都通过Task.WhenAll. 我完全可以理解这个想法:我们使用更多线程,但我们所有的 IO 操作(我们可以有很多)都以最慢的速度执行,但我仍然不确定这是否是正确的路径. 这是一种有效的方法还是我错过了什么?在典型的 ASP.Net 网站应用程序中,使用更多线程的成本是否会很明显?这是一些示例代码
public async Task<ActionResult> Foo() {
var dataATask = _dataARepository.GetDataAsync();
var dataBTask = Task.Run(_dataBRepository.GetData());
await Task.WhenAll(dataATask, dataBTask);
var viewModel = new ViewModel(dataATask.Result, dataBTask.Result);
return View(viewModel);
}
HUWWW
三国纷争
翻过高山走不出你
Smart猫小萌
相关分类