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

开发者门户网站是什么意思南京制作网页学校

开发者门户网站是什么意思,南京制作网页学校,wordpress 添加下载页面,网站怎么做footer怎么使用异步#xff0c;就是用委托进行处理#xff0c;如果委托对象在调用列表中只有一个方法#xff0c;它就可以异步执行这个方法。委托类有两个方法#xff0c;叫做BeginInvoke和EndInvoke#xff0c;它们是用来异步执行使用。 异步有三种模式 等待模式#xff0c;在…怎么使用异步就是用委托进行处理如果委托对象在调用列表中只有一个方法它就可以异步执行这个方法。委托类有两个方法叫做BeginInvoke和EndInvoke它们是用来异步执行使用。 异步有三种模式 等待模式在发起了异步方法以及做了一些其它处理之后原始线程就中断并且等待异步方法完成之后再继续。轮询模式原始线程定期检查发起的线程是否完成如果没有则可以继续做一些其它的事情。回调模式原始线程一直在执行无需等待或检查发起的线程是否完成。在发起的线程中的引用方法完成之后发起的线程就会调用回调方法由回调方法在调用EndInvoke之前处理异步方法的结构。在学习异步编程之前先看看BeginInvoke和EndInvoke方法。 BeginInvoke方法 在调用BeginInvoke时参数列表中的实参组成如下    1  引用方法需要的参数。     2  两个额外的参数——callback参数和state参数。 BeginInvoke从线程池中获取一个线程并且在新的线程开始时运行引用方法。BeginInvoke返回给调用线程一个实现IasyncResult接口的对象。这个接口引用包含了异步方法的当前状态原始线程然后可以继续执行。EndInvoke方法 它接受一个由BeginInvoke方法返回的IasyncResult对象的引用并找到它关联的线程。如果线程池的线程已经退出EndInvoke做如下的事情。    1  它清理退出线程的状态并且释放它的资源。     2  它找到引用方法返回的值并且把它的值作为返回值。 如果当EndInvoke被调用时线程池的线程仍然在运行调用线程就会停止并等待直到清理完毕并返回值。因为EndInvoke是为开启的线程进行清理所以必须确保对每一个BeginInvoke都调用EndInvoke。如果异步方法触发了异常在调用EndInvoke时会抛出异常。等待模式 在这种模式里原始线程发起一个异步方法的调用做一些其它处理然后停止并等待直到开启的线程结束。如下图         这段代码产生了如下输出。       既然我们已经看到了BeginInvoke和EndInoke的最简单形式可以进一步了解IasyncResult了它是使用这些方法的必要部分。 BeginInvoke返回一个IasyncResult接口的引用内部是AsyncResult类的对象。AsyncResult类表现了异步方法的状态。如下图   当我们调用委托对象的BeginInvoke方法时系统创建了一个AsyncResult类的对象。然而它不返回类的对象的引用而是返回对象中包含的IasyncResult接口的引用。AsyncResult对象包含一个叫做AsyncDelegate的属性它返回一个指向被调用来开启异步方法的委托的引用。但是这个属性是类对象的一部分而是接口的一部分。IsCompleted属性返回一个布尔值表示异步方法是否完成。AsyncState属性返回一个对象的引用它被作为BeginInvoke方法调用时的state参数。它返回object类型的引用稍后再讲解。。轮询模式   在轮询模式中原始线程发起了异步方法的调用做一些其它处理然后使用IAsyncResult对象的IsCompleted属性来定期检查开启的线程是否完成。如果异步方法已经完成原始线程就调用EndInvoke并继续。否则它做一些其它处理然后过一会儿再检查。如下图   这段代码产生了如下输出。     回调模式   在之前的等待模式与轮询模式中初始线程继续它自己的控制流程直到它知道开启的线程完成。然后它获取结果并继续。   回调模式的不同之处在于一旦初始线程发起了异步方法它就自己管自己了不再考虑同步。当异步方法调用结束之后系统调用一个用户自定义的方法来处理结束并且调用委托的EndInvoke方法。这个用户自定义的方法叫做回调方法或回调。   BeginInvoke的参数列表中最后的两个额外参数被回调方法用做     1  第一个参数callback参数是回调方法的名字。     2  第二个参数state参数可以是null或要传入回调方法的一个对象数据。我们可以通过使用IAsyncResult参数的AsyncState属性来获取这个对象。参数类型是object 回调方法的签名和返回类型必须和AsyncCallback委托类型所描述的形式一致。它需要方法接受一个IAsyncResult作为参数并且返回类型是void。如下所示Void AsyncCallback(IAsyncResult iar) 在回调方法内我们的代码应该调用委托的EndInvoke方法来处理异步方法执行后的输出值。要调用委托的EndInvoke方法我们肯定需要委托对象的引用而它在初始线程中不在开启线程中。如果我们不使用BeginInvoke的state参数作其它的用途可以使用它发送委托的引用给回调方法。否则我们可以从发送给方法作为参数的IAsyncResult对象中提取出委托的引用。    1  给回调方法的参数只有一个就是刚结束的异步方法的IAsyncResult接口的引用要记住IAsyncResult接口对象在AsyncResult类对象的内部。     2  尽管IAsyncResult接口没有委托对象的引用而包含它的AsyncResult类对象却有委托对象的引用。     3  有了类对象的引用我们现在就可以调用类对象的AsyncDelegate属性并且把它转化为合适的委托类型。这样就得到了委托引用我们可以用它来调用EndInvoke。 如下代码所示         这段代码产生了如下输出。   那么以上的异步内容已经基本讲解完毕。 说明异步编程在.Net4.0中有了更好的方式处理简化了编程的复杂度使用Task类在System.Threading.Tasks命名空间中处理但原理是一样的。转载于:https://www.cnblogs.com/atuotuo/p/4813818.html
http://www.zqtcl.cn/news/782155/

相关文章:

  • 产品网站怎么做企业网站建设用什么
  • 怎样做网站公司大连市住建局官方网
  • 东莞市网站建设平台wordpress用户登录显示请求失败
  • 网站一键收录西宁网站建设西宁
  • 昆山网站h5制作开发地点
  • 承德网站建设设计手机建站服务
  • 成都网站建设思乐科技网站简单化
  • 东莞外贸公司网站制作微信文章链接wordpress
  • 剑灵网站模板效果图网站源码
  • 个人工作室网站源码带后台安徽服装网站建设
  • SEO案例网站建设公司好听的公司名字大全
  • 一些网站只能在微信打开怎么做的别人做的网站域名到期怎么办
  • 姑苏区做网站网站建设一条
  • 赣州人才网站wordpress论坛查看用户密码
  • asp.net 网站开发架构网站你懂我意思正能量不用下载视频
  • 沈阳网站设计推广诸暨网络推广
  • 福建网站开发公司电话成都丁香人才网官网专区
  • 做网站标题居中代码对网页设计作品的意见
  • 网站建设实训考试普洱网站搭建
  • 你认为视频网站如何做推广asp网站木马扫描
  • 学校门户网站什么意思c2c网站建设要多少钱
  • asp怎么样做网站后台陕西咸阳做网站的公司
  • 手机网站模板wordpress编辑图像
  • 汉语国际网站建设靖江做网站的
  • 网站防止采集如何运行安装wordpress
  • 高端论坛网站建设忘记了wordpress登录密码忘记
  • 哈尔滨网站运营服务商wordpress 访问缓慢
  • 织梦网站上传及安装定制网站建设广告
  • 阳光创信-网站建设首选品牌wordpress rss插件
  • 钦州网站建设公司哪家好邢台制作