个人资料

跳过导航链接首页 > 博客列表 > 博客正文

async task 和 async void 两种方法的区别

:

async task  调用的时候使用await 

async void  调用的时候不需要使用await

虽然同样是异步调用方法,后者叫做“伪异步”更容易理解。

第一种方法,因为Task使用自动管理的线程池,可能新建了一个线程去执行异步方法,等待完成。

第二种方法,其实还是使用当前方法的线程(比如UI线程)去执行,只不过遇到async void 方法内部的await Task再进行异步。

一般情况下,异步方法尽量使用async task,而async void是一中“伪异步”的包装,比如一些事件调用的后台方法,无法直接使用Task的情况之下,使用async void包装真正的异步方法。

-------

如有错误请指教。

admin
最初发表2019/10/17 10:48:24 最近更新2019/10/17 10:49:14 9148
为此篇作品打分
10