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

协同程序原理

一、协程的本质

//协程可以分为两个部分
//1.协程函数本体
//2.协程调度器

//协程本体就是一个能够中间暂停返回的函数
//协程调度器是Unity内部实现的,会在对应的时机帮我们继续执行协程函数

//Unity只实现了协程调度器部分
//协程的本体本质上就是 C#的一个迭代器方法

二、协程本体是迭代器方法的实现

//1.协程函数本体
//如果我们不通过 开启协程的方法执行协程
//Unity的协程调度器是不会帮我们管理协程函数的
IEnumerator ie = Test();

//但是我们可以自己执行迭代器函数内容
//ie.MoveNext();
//print(ie.Current);//得到 yield return 返回的内容

//ie.MoveNext();
//print(ie.Current);

//ie.MoveNext();
//print(ie.Current);

//ie.MoveNext();
//TestClass tc = ie.Current as TestClass;
//print(tc.time);

//MoveNext 返回值 代表着 是否到了结尾(该迭代器是否执行完毕)
while(ie.MoveNext())
{
print(ie.Current);
}

//2.协程调度器
//继承MonoBehavior后 开启协程
//相当于是把一个协程函数 放入Unity的协程调度器中帮助我们执行
//具体的yield return 后面的规则 也是Unity定义的一些规则

//总结
//你可以简化理解迭代器函数
//c#看到迭代器函数和yield return 语法糖
//就会是把原本是一个的函数 变成 “及部分”
//我们就可以通过迭代器 从上到下遍历这“及部分”进行执行
//就达到了将一个函数中的逻辑分时执行的目的

//而协程调度器就是 利用迭代器函数返回的内容来进行之后的处理
//比如Unity中的协程调度器
//根据yield return 返回的内容 决定了下一次在何时继续执行迭代器函数中的“下一部分”

//理论上来说 我们可以利用迭代器函数的特点 自己实现协程调度器来取代Unity自带的调度器

总结

//协程的本质 就是利用
//C#的迭代器函数“分步执行”的特点
//加上
//协程调度逻辑
//实现的一套分时执行函数的规则

http://www.lryc.cn/news/302068.html

相关文章:

  • 怎样保证数据库和redis里的数据一致性
  • 探索设计模式的魅力:创建型设计模式的比较与决策
  • Linux之Shell
  • nginx upstream server主动健康检测模块添加https检测功能[完整版]
  • django中admin页面汉化
  • prometheus基于consul的服务发现
  • 深度学习之pytorch实现线性回归
  • Vue3快速上手(八) toRefs和toRef的用法
  • 《数学建模》专栏导读
  • App启动优化笔记 1
  • Spring Boot 笔记 027 添加文章分类
  • 【SQL】sql记录
  • 嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第六天-ARM Linux编程之SMP系统 (物联技术666)
  • html5播放 m3u8
  • 微信小程序按需注入和用时注入
  • iPhone 16 组件泄露 揭示了新的相机设计
  • 网络工程师学习笔记——IPV6
  • 【零基础学习CAPL】——CAN报文的发送(LiveCounter——生命信号)
  • git提交代码冲突
  • 树莓派:使用mdadm为重要数据做RAID 1保护
  • HTML板块左右排列布局——左侧 DIV 固定宽度,右侧 DIV 自适应宽度,填充满剩余页面
  • 红旗linux安装32bit依赖库
  • Stable Diffusion教程——使用TensorRT GPU加速提升Stable Diffusion出图速度
  • NFTScan | 02.12~02.18 NFT 市场热点汇总
  • 使用 apt 源安装 ROCm 6.0.x 在Ubuntu 22.04.01
  • python函数的定义和调用
  • 【JVM篇】什么是类加载器,有哪些常见的类加载器
  • STM32—DHT11温湿度传感器
  • 相机图像质量研究(31)常见问题总结:图像处理对成像的影响--图像差
  • MySQL之select查询