问题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
相关分类