Coroutine ≠ 多线程

以下解释全部基于Unity中:

      Coroutine的执行仍然在MainThread中进行

      Unity 使用StartCoroutine(IEnumertor)来开启协程,yield return 来进行返回

      在协程中开启协程过程为栈操作

       Unity中 :

       yield return null ; //将在下一帧中从该现场继续执行

       yield return  WaitForEndOfFrameWaitForSecondsWaitForSecondsRealtimeWaitUntilWaitWhile.等

使用方向:

      1.同时读取一个列表非常的消耗内存。使用返回Enumertable<T>(可迭代的容器)函数,从而调用Enumertable.GetIterator().current返回当前返回的值,这样当我们调用的时候就会获得最新的被yield return  i;返回的值。其次我们可以通过函数传递引用型参数,继而在当前调用函数中改变对象数据  举例如下:

         【C#】 协程 Coroutine 探索

   【C#】 协程 Coroutine 探索【C#】 协程 Coroutine 探索

   打印结果以及运行流程解析如上;

     2.等待固定帧数或者固定时间后继续执行该函数

     3.等待指定某函数执行完毕后执行(该条例多少和2有互通之处,可以算作一个子集)

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-03-05
  • 2021-06-01
  • 2021-12-30
  • 2021-07-06
  • 2021-08-21
  • 2022-12-23
相关资源
相似解决方案