async和await 用法
2016-10-31 15:03
351 查看
首先来看一下async关键字。
async用来修饰方法,表明这个方法是异步的,
声明的方法的返回类型必须为:void 或 Task 或 Task。
返回类型为Task的异步方法中无需返回值
而返回类型为Task的异步方法中必须使用return返回一个TResult的值
再来看一下await关键字。
await必须用来修饰Task或Task,而且只能出现在已经用async关键字修饰的异步方法中。
看代码 demo1
看代码 demo2
async用来修饰方法,表明这个方法是异步的,
声明的方法的返回类型必须为:void 或 Task 或 Task。
返回类型为Task的异步方法中无需返回值
而返回类型为Task的异步方法中必须使用return返回一个TResult的值
再来看一下await关键字。
await必须用来修饰Task或Task,而且只能出现在已经用async关键字修饰的异步方法中。
看代码 demo1
private void button4_Click(object sender, EventArgs e) { Console.WriteLine("---主线程启动---"); Task task = GetListAsync(); Console.WriteLine("---主线程结束---"); } private async Task GetListAsync() { List<string> arr = await GetDataAsync(); foreach (var item in arr) { Console.WriteLine(item); } } private Task<List<string>> GetDataAsync() { List<string> arr = new List<string> { "a", "b", "c" }; return Task<string[]>.Run(() => { Thread.Sleep(2000); return arr; }); }
看代码 demo2
private void button5_Click(object sender, EventArgs e) { Console.WriteLine("---主线程启动---"); GetUserAsync(); Console.WriteLine("---主线程结束---"); } private async void GetUserAsync() { User user = await GetData1Async(); Console.WriteLine(user.Name); } private Task<User> GetData1Async() { User user = new User { Name = "张三" }; return Task<User>.Run(() => { Thread.Sleep(2000); return user; }); }
相关文章推荐
- async和await用法(Task)
- .net 4.5 async await 简单用法
- Promise和Async/Await用法整理
- async和await用法
- vue中异步函数async和await的用法
- .Net 4.5 Async & Await 用法
- async & await 的用法
- Async和await关键字的用法
- javascript中async、await、yield、*的用法
- JavaScript里的await/async的作用和用法
- 说说C#的async和await的具体用法
- async/await的一些用法
- JavaScript中的await/async的作用和用法
- 理解Koa2中的async&await的用法
- 深入理解ES7的async/await的用法
- C# 异步操作 async await 的用法
- C#--async-await的用法
- async 和await的结合promise用法
- async和await用法
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G