我有一本书.net核心API,它有一个构建聚合对象以返回的控制器.
[HttpGet]
public IActionResult myControllerAction()
{
var data1 = new sometype1();
var data2 = new sometype2();
var data3 = new List<sometype3>();
var t1 = new Task(() => { data1 = service.getdata1(); });
t1.Start();
var t2 = new Task(() => { data2 = service.getdata2(); });
t2.Start();
var t3 = new Task(() => { data3 = service.getdata2(); });
t3.Start();
Task.WaitAll(t1, t2, t3);
var data = new returnObject
{
d1 = data1,
d2 = data2,
d2 = data3
};
return Ok(data);
}
这很有效,但是我想知道使用任务是否是最好的解决方案?使用async/await会是一个更好的主意和更被接受的方式吗?
例如,控制器是否应该标记为async,并在对服务方法的每次调用上放置一个等待?