最近一直在用多线程,多线程实现有很多种方式,但是对async/await的使用方式特别印象深刻,本人比较喜欢,但是使用的场景并不多,所以经常会看,但是不经常使用还是会忘记,所以记录下来一些使用方式和场景
- 其实async/await是c#保留关键字,通常成对出现
- async 修饰的方法,可以单独出现,但是有警告
- await 在方法体里面,出现在task/async的方法前面,只有await关键字会报错,必须与async成对出现
- .NetFramwork4.5版本
- 其实是一种语法糖,编译器提供的功能,
但是winform不建议使用,winform很多事件添加async会有一些奇怪的问题,因为winfrom的线程是STA(single thread applacation)这种线程模型会出现一些意外情况,所以不建议在winform中使用。
async修饰的方法中,await 修饰后面的方法会包装成异步调用,并在async方法中阻塞线程,调用async方法并不会阻塞线程
并可以继续执行。