相关文章  
  • 浅谈如何利用BartPE创建PE工具盘
  • Windows Mobile 2003 Second Edition 中 ActiveSync 编程模型的增强功能
  • 在完成所有绑定后仍然有许多要进行的操作
  • 在你的企业中管理Windows和应用程序
  • 动态加载用户控件的组件
  • 小心GDI+资源泄漏 -- 猜想 测试 应对全过程
  • 定时检测邮件并且自动转发的例子
  • Internet Explorer 中编辑 OLE 嵌入文档
  • 教你通过 Emit 实现动态生成一个类
  • 如何才能在10046event自由漫步
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    浅谈 C# 中的代码协同 (Coroutine) 执行支持2


      就协同执行而言,从功能上可以分为行为、控制两部分,控制又可进一步细分为控制逻辑和控制状态。行为对应着如何处理目标对象,如上述代码中:行为就是将目标对象打印到控制台;控制则是如何遍历这个 elements 数组,可进一步细分为控制逻辑(顺序遍历)和控制状态(当前遍历到哪个元素)。下面将按照这个逻辑介绍不同语言中如何实现和模拟这些逻辑。
      
      Spark Gray 在其 blog 上有一个系列文章介绍了协同执行的一些概念。
      
      Iterators in Ruby (Part - 1)
      Warming up to using Iterators (Part 2)
      
      文章第 1, 2 部分以 Ruby 语言(语法类似 Python)介绍了 Iterator 机制是如何简化遍历操作的代码。实际上中心思想就是将行为与控制分离,由语言层面的支持来降低控制代码的薄记工作。
      以下内容为程序代码:
      
      def textfiles(dir)
      Dir.chdir(dir)
      
      Dir["*"].each do |entry|
      yield dir+"\"+entry if /^.*.txt$/ =~ entry
      
      if FileTest.directory?(entry)
      textfiles(entry){|file| yield dir+"\"+file}
      end
      end
      Dir.chdir(".."[img]/images/wink.gif[/img]
      end
      
      textfiles(“c:\”){|file|
      puts file
      }
      <

    页码:[1] [2] [3] [4] [5] [6] [7] [8]2页、共8页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved