异步的两种写法: async 与 BeginInvoke
2016-07-23 20:36
393 查看
现在要实现异步只要用关键字async/await就可以轻松实现,在此之前需要用到委托/回调等一堆东西。
对一下是对比写法:
对一下是对比写法:
class Program { delegate string SendMessage(string msg); static void Main(string[] args) { SendMessage sm = new SendMessage(DoAction); sm.BeginInvoke("asyn asyn asyn ... ...", new AsyncCallback(CallBack), null); DoAsync("async keywod.. ..."); Console.WriteLine("do do do .... ..."); Console.ReadLine(); } static void CallBack(IAsyncResult result) { SendMessage sm = (SendMessage)((System.Runtime.Remoting.Messaging.AsyncResult)result).AsyncDelegate; Console.WriteLine(sm.EndInvoke(result)); } static string DoAction(string msg) { Thread.Sleep(3000); return msg; } static Task<string> DoTask(string msg) { return Task.Run(() => { Thread.Sleep(1000); return msg; }); } static async void DoAsync(string msg) { Console.WriteLine(await DoTask(msg)); }
相关文章推荐
- 数字图像处理-----直方图均衡化
- BFS、DFS——求最短通路值
- 堆和栈的区别(转过无数次的文章)
- 设计模式六大原则(5):迪米特法则
- php 安全处理多线程同时写操作同一文件
- hdu1015 Safecracker (DFS)
- PHP之路——PHPStudy虚拟主机
- 排序算法---希尔排序
- 【VS开发】【图像处理】RGB各种格式
- JAVA中初始化数据的方法?
- 关于海量数据查找排序问题
- 欢迎使用CSDN-markdown编辑器
- collectionview使用
- 挑战这十七项编程 锻炼大脑并且提升能力
- Nova 是如何统计 OpenStack 计算资源
- android 子线程中更新界面?被ProgressBar给迷惑了
- 2016第30周六
- POJ 2553 The Bottom of a Graph
- Mac下运行 x86 的 AVD
- Hust oj 1071 Jumping Jack(贪心)