问题1,async/await + Task.Run 与 async/await一路到底(或者说从下至上)有什么区别?
static void Main(string[] args)
{
DoSomeThingAsync();
Console.ReadLine();
} static async void DoSomeThingAsync()
{ var users = await Task.Run(() =>
{ return GetList("aa");
}); //输出
users.ForEach(u => {
Console.WriteLine(u.NickName);
});
} static List<User> GetList(string name)
{ //Thread.Sleep(2000);
var result= new List<User>() { new User() {
NickName="aaa1"
}, new User() {
NickName="aaa2"
},
}; return result;
}在我看来async/await + Task.Run或许更好,假如我的api项目是分了很多层,有interface,service,common等等... 用async/await + Task.Run的方式我只需在controller,async action,Task.Run(),而不需要去从上至下都改成async/await。

问题2,web api本来就是多线程了,为什么还要使用async/await
慕无忌1623718
相关分类