当前位置: 首页 > news >正文

夸网站做的好怎么夸wordpress 首页 缩略图

夸网站做的好怎么夸,wordpress 首页 缩略图,做网站的属于什么工作类型,页面设计工资有多少阅读目录 一、简单的串行执行程序 二、使用委托来实现APM源码地址#xff1a;https://github.com/Jackson0714/Threads C#多线程之旅(4)——APM初探 v博客前言 先交代下背景#xff0c;前面几张内容主要是介绍多线程的基本知识#xff0c;这一章是因为正好接触到了APMhttps://github.com/Jackson0714/Threads C#多线程之旅(4)——APM初探 v博客前言 先交代下背景前面几张内容主要是介绍多线程的基本知识这一章是因为正好接触到了APM异步编程模型发现APM真的很强大其中有部分知识点涉及到了委托的BeginInvoke/EndInvoke就由衷地想写下APM相关的知识。 v写在前面 强大的异步处理模型不得不被它折服 v正文开始 回到顶部 一、简单的串行执行程序 我们先来看一个简单的程序 定义了一个int Add(int num)传入循环的次数num返回循环相加的结果sum。 Step 1.Main方法调用Add方法循环执行了2次所以延时了2s返回结果sum1打印 Result:1; Step 2.Main方法循环执行了3次延时了3s。 友情提醒如果觉得不想阅读多彩的Console打印代码可以选择查看下面折叠的code区域。查看简洁版 去掉颜色打印的code简洁版 让我们看看这个程序的运行结果 我们可以从结果中看到 1.执行Add方法是主线程执行Add方法 2.执行Main方法是主线程执行Main方法 3.这中限时操作可以称为“计算限制的异步操作” 4.Add方法中模拟耗时操作2s和Main方法中模拟耗时操作3s是串行执行的那么我们有没有一种方法使这两种操作并行执行了3s中之内搞定这两个耗时操作。答案是可以用APM。 下面我们用APM方式来节省2s的时间。 回到顶部 二、使用委托来实现APM 2.1 预备知识 我们使用泛型委托来实现APM那么我们需要点预备知识对委托很熟练的同学们可以跳过预备知识 1.什么是委托 2.什么是泛型委托 3.为什么使用委托来实现APM 对于这知识点1、2可以参考我之前写的博客在这里就不再说明了不惧面试委托 对于第三个知识点是因为委托定义了两个异步方法BeginInvoke和EndInvoke。 我们可以先看看泛型委托的定义 1 2 3 4 5 6 7 8 /// summary /// 定义一个泛型委托 /// /summary /// typeparam nameT输入参数/typeparam /// typeparam nameTResult返回值/typeparam /// param namearg输入参数/param /// returns nameTResult返回值/returns private delegate TResult FuncT, TResult(T arg); 对于这个定义C#编译器会将这行代码编译成一个类定义它的逻辑定义如下 1 2 3 4 5 6 7 public sealed class FuncT, TResult : MulticastDelegate {     public Func(Object obj, IntPtr method);     public TResult Invoke(T arg);     public IAsyncResult BeginInvoke(T arg, AsyncCallback callback, Object obj);     public TResult EndInvoke(IAsyncResult result); } 定义一个委托时会生成一个BeginInvoke和EndInvoke方法的类。 当定义下面的委托时 1 public delegate void myDelegate(int value); 通过反编译工具ILSpy查看结果 BeginInvoke: 1.第一个参数arg为委托定义相同的参数可以为两个参数arg和委托的签名相同可以传入到委托引用的方法 2.倒数第二个参数callback为回调方法当BeginInvoke方法执行完后会立即调用回调方法如果callbacknull则不调用回调方法 3.倒数第一个参数object给EndInvoke用的。 4.返回值为IAsyncResult类型的接口对象实际上是AsynResult的类型实例。该接口对象用途 a.传递参数它包含了对调用了BeginInvoke的委托的引用这里是Add方法的int类型的输入参数 b.包含了BeginInvoke()的最后一个Object类型的参数 c.它可以鉴别是哪个方法的哪一次调用因为通过同一个委托变量可以对同一个方法调用多次。 EndInvoke 1.第一个参数接收BeginInvoke返回的IAnsyResult 2.返回的TResult为委托引用的方法的返回值这里是Add方法的int类型返回值 2.2 用委托来实现APM的原理 2.3 动手写个实现了APM的Code 通过上面的流程图相信我们对委托来实现APM有了一定的理解再来读读code相信能更快地理解。注释仅作参考有问题可以回复我哦 让我们看看结果 注意 1.必须先将IAsyncResult转换为AsyncResult才能获取到引用的委托,因为它没有包含在IAsyncResult接口的定义中 2.Add方法的调用AddCallback方法都是线程池线程调用的 3.BeginInvoke的object参数可以为任何类型例子中传递的是string类型的参数Im here! 4.主线程执行的for循环和Add方法中线程是同时进行的交替打印结果 5.当异步的Add方法没有执行完毕调用EndInvoke则会阻塞当前线程池线程只有异步方法执行完毕后才会继续执行的代码 6.Add方法执行完后会自动调用回调方法AddCallback 7.在调用EndInvoke可能抛出异常所以需要加try/catch/finally捕获EndInvoke的可能抛出的异常。 v写在最后 因为只是刚开始接触APM相关的知识所以本篇只是写初探的内容后面的章节会更多地介绍这方面的内容。希望得到园友们的支持 作  者 Jackson0714  出  处http://www.cnblogs.com/jackson0714/  关于作者专注于微软平台的项目开发。如有问题或建议请多多赐教  版权声明本文版权归作者和博客园共有欢迎转载但未经作者同意必须保留此段声明且在文章页面明显位置给出原文链接。  特此声明所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误共同进步。或者直接私信我  声援博主如果您觉得文章对您有帮助可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力
http://www.yutouwan.com/news/399561/

相关文章:

  • 网站建设美工招聘网站做跳转影响排名吗
  • 网站营销建设wordpress表格边框
  • 上海网站jianshe沧州市注册网络公司
  • 网站404报错广州网络公司
  • 域名服务器没有该网站的域的列表投资网站建设方案
  • 免费的个人网站怎么做wordpress站长统计
  • 网站建设与维护试题及答案网站建设的网站定位
  • 有的网站网速慢哪个网站建设平台支持花呗分期
  • 昭通市住房和城乡建设局网站wordpress解析优化
  • 怎么做网站写书wordpress开放注册
  • 城市网站建设摘要论文潍坊市企业型网站建设
  • 印刷做网站网上接单网站设计属于什么经营范围
  • 威海网站网站建设台州seo网站管理
  • 如何做网站轮播大图清远市清城区发布
  • 电子商务网站开发教程书内代码我wordpress top主题
  • 恩施网站制作公司360建筑网官网怎么登录
  • 对php网站开发技术课程总结Nginx伪静态WordPress
  • 网站备案登记网站设计步骤详解
  • 白石桥做网站公司制作灯笼的材料
  • 查询网站空间的服务商网站死链删除
  • 搭建一个网站要多少中国世界排名
  • 企业网站的重要性网站建设交易平台
  • 安顺做网站台州响应式建站
  • 营销型网站策划建设微信小程序设计制作
  • 网站后台费用流控插件wordpress
  • 哪些网站怎么进网站制作服务好的商家
  • 网站域名要怎样规划南通建设局网站查询
  • 新东方研学网站那家公司做的扬中网站建设好么
  • 东莞市专注网站建设中江移动网站建设
  • 流媒体网站建设规划 所需设备关于医疗保障局门户网站建设