C#的同步和异步调用方法
2013-11-17 22:40
441 查看
同步和异步大家都明白什么意思,在这里不多介绍了。
namespace ConsoleTest { class Program { static void Main(string[] args) { Console.WriteLine("********同步调用开始**********"); int result = Add(1,2); Console.WriteLine("同步调用完毕,执行结果为:" + result); Console.WriteLine("********异步调用开始**********"); SynAdd(1, 2, (r) => { Console.WriteLine("异步调用完毕,执行结果为:" + r); }); Console.WriteLine("-------完毕!----------"); Console.ReadLine(); } /// <summary> /// 同步方法 /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> static int Add(int a, int b) { Thread.Sleep(5000); return a + b; } /// <summary> /// 异步调用 /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <param name="callback">委托对象</param> static void SynAdd(int a, int b, Action<int> callback) { Func<int> func = () => { Thread.Sleep(5000); return a+b; };//声明异步方法实现方式 func.BeginInvoke((ar) => { var result = func.EndInvoke(ar);//调用完毕执行的结果 callback.Invoke(result);//委托执行,回传结果值 }, null); } } }
相关文章推荐
- C#中const与readonly的区别?
- C# 图片自由变换 任意扭曲
- c#实现生产者消费者模式
- c#数据类型格式转换大全
- C#中修改提示字体及颜色
- C#开发范例大全--学习笔记
- [转]C# 之DLL调用(托管与非托管)
- c# winform comboBox的常用一些属性和用法
- [Silverlight 2.0 控制物体绕圆弧运行(C#初探篇)]
- CLR_Via_C#学习笔记之枚举
- C#中listview允许选中整行,并获取选中行数据
- C# 委托
- C#控件的闪烁问题解决方法总结
- BackgroundImageLayout属性值
- 在C#中快速查询文件
- C# 重载(overload)与重写(override)
- C# Lambda表达式与Linq
- C#聚合运算方法
- c# global::
- C# LINQ语法