1、包含async、await关键字及Task相关方法,async和await必须成对使用(Task无强制要求)。
2、异步是为了解决执行耗时操作所导致的线程阻塞。
3、当在你的method中调用NET提供的aysnc方法(或你自己写的aysnc方法)时,await关键字将线程归还到线程池,并跳出你的method,继续执行上级代码块,直到异步方法执行结束后,才会继续执行你method中的后续逻辑。这样就避免了你的method阻塞上级代码块的执行。
4、异步并不等于多线程。因为经测试,有时异步方法的线程与主线程是同样的id。
5、建议定义method返回值时使用Task关键字(比如Task<string>),await关键字能将aysnc方法的返回值自动与Task对应,就不需要我们在代码中包装返回值类型了。
6、async和await虽能避免阻塞,但会造成性能的开销,用时需权衡。
7、Task类能辅助异步相关功能,比如强制退出异步操作(CancellationToken)、休眠(Task.Delay)等。尽量用Task类替代Thread类,比如Task.Delay替代Thread.Sleep。
8、编写restful风格api时,返回值尽量使用Task关键字。
标签:异步,Task,await,关键字,理解,线程,NET,method From: https://www.cnblogs.com/tudou365/p/17035943.html