.net3.5后新增的 BeginInvoke EndInvoke 异步操作
2015-09-24 16:00
381 查看
protected void Main() { //首先定义一个方法的封装..后边的LongTimeMethod是被封装的方法.. Func<int> longTimeAction = new Func<int>(LongTimeMethod); //定义一个异步操作.. asynResult //用上边的longTimeAction封装 来开启这个异步操作.. IAsyncResult asynResult = longTimeAction.BeginInvoke(null, null); //在上边的开启异步操作后..程序会另外启动一个线程来执行前边的封装方法..这个方法是委托给这个新线程的 //得到了异步请求的结果..返回给 ret int ret = longTimeAction.EndInvoke(asynResult); } int LongTimeMethod() { return 1; }
protected void Main () { //首先定义一个方法的封装..后边的LongTimeMethod是被封装的方法.. Func<int> longTimeAction = new Func<int>(LongTimeMethod); //定义一个异步操作.. asynResult //用上边的longTimeAction封装 来开启这个异步操作.. int ss=0; IAsyncResult asynResult = longTimeAction.BeginInvoke((result) => { ss = longTimeAction.EndInvoke(result); }, null); //在上边的开启异步操作后..程序会另外启动一个线程来执行前边的封装方法..这个方法是委托给这个新线程的 //得到了异步请求的结果..返回给 ss } int LongTimeMethod() { return 1; }
相关文章推荐
- 【九度OJ】题目1204:农夫、羊、菜和狼的故事 -----------状态压缩+搜索
- hdu4746 Mophues
- 个人前博客地址
- ADC 驱动分析
- android4.4以上系统Uri错误的解决方法
- android4.4以上系统Uri错误的解决方法
- SSRF的一些总结
- 纯 AS3 将图片转换为 SWF(转自同行“古树悬叶”的博客)
- [LeetCode]Remove Duplicates from Sorted Array
- Scala学习笔记
- 如何查看手机型号机型和品牌最有效的方法
- 堆和栈的区别
- 验证stderr stdout stdin 缓冲类型和缓冲区大小 以及在重定向后缓冲类型的改变
- 面试---内联函数和宏定义的区别
- HashMap、Hashtable、HashSet的比较
- cocos2d lua 引用protobuf进行通信
- tomcat优化
- SSRF漏洞的挖掘经验
- Swift 面向协议编程
- 如何编写Android.mk(转)