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

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

    n32 API 的纤程 (Fiber) 支持和 CLR 几个底层 API 的支持,完整的实现了一套可用的协同执行支持机制。
      Spark Gray 的第 4 篇文章中就详细讨论了这种实现方式的利弊:
      
      SICP, Fiber api and ITERATORS !(Part 4)
      
      纤程 Fiber 是 Win32 子系统为了移植 Unix 下伪线程环境下的程序方便,而提供的一套轻量级并行执行机制,由程序代码自行控制调度流程。
      其使用方法很简单,在某个线程中调用 ConvertThreadToFiber(Ex) 初始化纤程支持,然后调用 CreateFiber(Ex) 建立多个不同纤程,对新建的纤程和转换时当前线程缺省纤程,都可以通过 SwitchToFiber 显式进行调度。
      以下内容为程序代码:
      
      static int array[3] = { 0, 1, 2 };
      
      static int cur = 0;
      
      VOID CALLBACK FiberProc(PVOID lpParameter)
      {
      for(int i=0; i  {
      cur = array[i];
      
      SwitchToFiber(lpParameter);
      }
      }
      
      LPVOID fiberMain = ConvertThreadToFiber(NULL);
      
      LPVOID fiberFor = CreateFiber(0, FiberProc, fiberMain);
      
     

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

         

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

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