榨干委托那些知识点,能写出多少种委托(Action Func委托+异步委托)
2012-02-21 13:57
239 查看
以前写过一篇博文,是专门针对2.0委托的缘由和事件来说的,经过“水牛刀刀”的指点,抽出了1天时间,把3.5特性里的FCL自带的委托学习了下,总结给大家。
博文从3个方面来演示:
1.传统的委托的5种方式
2.Action和Func的委托
3.Action和Func的异步委托
如果对异步委托不太熟悉的朋友,建议先看看我的前几篇博文:
1.《抛开书本谈 委托,为什么需要委托,它成就了什么?》
2.《抛开书本,为什么出现了事件,事件与委托有什么渊源?》
3.《委托与事件 在.net的争霸战 ,你选择了谁?(异步委托产生的原因)》
4.《异步委托,恰似一江春水向东流(你了解的异步委托)》
开始进入正题,学习就像是 爬山,每天努力一点,你都会离顶峰近一点。
1.传统的委托
View Code
总结:
本文代码居多,因为有些东西抽象,不容易说明白。有什么错误望大家指出来。
3.5新特性的FCL自带的委托,如果看完本文,你就可以理解了它有什么好处。
博文从3个方面来演示:
1.传统的委托的5种方式
2.Action和Func的委托
3.Action和Func的异步委托
如果对异步委托不太熟悉的朋友,建议先看看我的前几篇博文:
1.《抛开书本谈 委托,为什么需要委托,它成就了什么?》
2.《抛开书本,为什么出现了事件,事件与委托有什么渊源?》
3.《委托与事件 在.net的争霸战 ,你选择了谁?(异步委托产生的原因)》
4.《异步委托,恰似一江春水向东流(你了解的异步委托)》
开始进入正题,学习就像是 爬山,每天努力一点,你都会离顶峰近一点。
1.传统的委托
View Code
class Program { static void Main(string[] args) { //Action委托的异步委托 Func<int,string> func = Speak; AsyncCallback callback=new AsyncCallback(CallBackMethod); func.BeginInvoke(10, callback, func);//注意 Console.WriteLine("当前线程ID:{0}", Thread.CurrentThread.ManagedThreadId.ToString()); Console.ReadKey(); } //回调方法 static void CallBackMethod(IAsyncResult ar) { Func<int, string> a = (Func<int, string>)ar.AsyncState;//注意 string str=a.EndInvoke(ar); Console.WriteLine(str);//取得返回值 } //被委托方法 static string Speak(int i) { string str = string.Format("The number is {0}",i); Console.WriteLine("当前线程ID:{0}",Thread.CurrentThread.ManagedThreadId.ToString()); Thread.Sleep(TimeSpan.FromSeconds(3)); return str; }
总结:
本文代码居多,因为有些东西抽象,不容易说明白。有什么错误望大家指出来。
3.5新特性的FCL自带的委托,如果看完本文,你就可以理解了它有什么好处。
相关文章推荐
- 蓝桥杯常用算法知识点:【递归】n个球中取m个,有多少种取法?
- 来段代码提提神-那些无法回避的知识点之过滤器Filter
- MVC项目开发中那些用到的知识点(将cshtml文件编译成dll文件)
- MVC项目开发中那些用到的知识点(WCF Rest在MVC项目中的两种调用方式)
- 随便总结几条委托和事件的知识点
- 那些不能遗忘的知识点回顾——操作系统系列(笔试面试高频题)
- [ASP.NET MVC 大牛之路]01 - C#高级知识点概要(1) - 委托和事件
- 【转】Flash:同志们,这些知识点你们知道多少?(一些必备的Flash开发知识点)
- 写给那些看不懂委托的同学
- PHP那些琐碎的知识点
- PHP那些琐碎的知识点
- Java进阶之欧拉工程 第十七篇【用英文写出1到1000的所有数字需要多少个字母?】
- socket 通信 多线程调用窗体(委托)的几个知识点,记录在案,以备查阅
- MVC项目开发中那些用到的知识点(js css优化
- 那些代购的“大鹅”,到底有多少是真的?
- 一天一个知识点-委托
- 那些不能遗忘的知识点回顾——C/C++系列(笔试面试高频题)
- Qt的模型/视图/委托知识点
- .NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式
- Android总有那些你看了无数遍也记不住的简单知识点