使用async和await将同步方法包装成异步方法
来源:互联网 发布:免root的手机数据恢复 编辑:程序博客网 时间:2024/05/20 05:27
使用c#5.0引入的async和await,可以更简单的进行异步编程。本文使用async和await将同步方法包装成异步方法。
using System;using System.Threading.Tasks;namespace YlBCL{ public class AsyncHelper { public static async void RunAsync(Action action, Action callback) { await Task.Run(() => { action(); }); if (callback != null) callback(); } public static async void RunAsync<TResult>(Func<TResult> function, Action<TResult> callback) { TResult tResult = await Task.Run(() => { return function(); }); if (callback != null) callback(tResult); } }}
下面是使用AsyncHelper类的示例代码。
Action action = new Action(() =>{ int s = 0; for (int i = 1; i < 10000; i++) { s = i; }});Action callback = new Action(() =>{ Console.WriteLine("success");});AsyncHelper.RunAsync(action , callback);Func<string> action = new Func<string>(() => { int s = 0; for (int i = 1; i < 10000; i++) { s = i; } return s.ToString();});Action<string> callback = new Action<string>((s) =>{ Console.WriteLine(s); });AsyncHelper.RunAsync(action , callback);
传入的Action实例也可以是满足委托定义的方法。
0 0
- 使用async和await将同步方法包装成异步方法
- .NET 4.5 使用async和await关键字调用异步方法
- c# async、await的使用,异步方法
- .NET 异步方法async await
- 解决js异步问题的方法--async和await(ES7)
- 【转】.NET 4.5 使用async和await关键字调用异步方法
- 使用 Async 和 Await 的异步编程
- Promise,同步异步,Async/await
- 使用Promise和async-await实现的一个异步遍历+同步执行任务的实例
- 初探es7中async和await方法
- U3d 使用 异步 async await
- Async和await异步编程
- async和await异步操作
- .NET中使用异步Async和Await的代价
- .net4.5使用async和await异步编程实例
- .net4.5使用async和await异步编程实例
- 关于U3d 使用 async await异步语法
- Async和Await异步编程的原理
- C++实验报告3:个人所得税计算
- 修改UITextView的光标颜色
- C++:vector中的resize()函数 VS reserve()函数
- etl工具kettle学习——创建数据库连接及转换
- Android NDK开发-配置环境
- 使用async和await将同步方法包装成异步方法
- AngularJS 锚点
- ng-app自动加载的使用
- MTK开发<modem编译相关>
- 数据库sql指南总结
- java mvc spring MyBatis Log4j sql语句
- bzoj1041: [HAOI2008]圆上的整点
- Power Graph的关于GAS的思考
- android studio project 工程目录