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

Unity补充 -- 协程相关

1.协程。

        协程并不是线程。线程是主线程之外的另一条 代码按照逻辑执行通道。协程则是在代码在按照逻辑执行的同时,是否需要执行额外的语句块。 

2.协程的作用。

     在update执行的时候,是按照帧来进行刷新的,也是按照帧执行代码的。但是又不想每一帧都执行某个方法的时候,可以使用协程。控制某段时间不执行方法。

3.协程的调用停止。

        

        

4.携程的执行顺序。

        

        

5.协程的应用。

        <1> 循环中 等待。

        

        <2>这样分开写逻辑,然后在另一个协程里面 开启另一个协程的方法。可以实现 异步打印 i , j 的值。

        

        

          <3>这种情况 相当于同步调用了。会先打印 i。等待循环完成之后。在循环打印 j。

        

6.协程的问题。

        《1》框架层面。

        对于MVC来说。只有 V 这一层和 MonoBehaviour 有关。M 和 C 则无关。导致没办法使用系统自带的协程。

        《2》不能有返回值。需要定义全局变量接收。并调用全局变量。

        《3》方法当中套方法。回调困难

                

7.问题的解决思路。

        《1》async / await 异步调用。解决循环嵌套回调困难的情况。

                <1> 烧水一个逻辑。沏茶一个逻辑。正常来说,是先执行  GetBoomWater。在执行  GetDemoText 。是同步的调用。花费的时间较长。

                

                <2> 使用 async / await 异步调用。执行 GetBoomWaterAsync 烧水逻辑的同时。我可以执行 GetDemoTextAsync 里面获取茶杯 获取茶叶的逻辑。然后等待着水烧开。然后会继续执行接下来的沏茶。

                这样便以  通过等待是否完成  判断是否该进行下面的操作  。 取代了当完成逻辑之后采用回调函数的方法 执行其他方法。避免了循环嵌套。

                

        《2》自定义调度器。

8.待补充........

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

相关文章:

  • 【第二十周】U-Net:用于生物图像分割的卷积神经网络
  • 部署Metricbeat监测ES
  • Pytorch|YOLO
  • 云计算与物联网技术的融合应用(在工业、农业、家居、医疗、环境、城市等整理较全)
  • 基于python+Django+mysql鲜花水果销售商城网站系统设计与实现
  • Golang:报错no required module provides package github.com/xx的解决方法
  • 数据结构与算法(2):顺序表与链表
  • 华为OD机试E卷 --过滤组合字符串--24年OD统一考试(Java JS Python C C++)
  • QT跨平台应用程序开发框架(3)—— 信号和槽
  • 从 0 开始实现一个 SpringBoot + Vue 项目
  • 【无标题】微调是迁移学习吗?
  • 虚幻基础1:hello world
  • C链表的一些基础知识
  • JDK长期支持版本(LTS)
  • 【超详细】Python datetime(当前日期、时间戳转换、前一天日期等)【附:时区原理详解】
  • 【Excel】【VBA】双列排序:坐标从Y从大到小排列之后相同Y坐标的行再对X从小到大排列
  • 为什么相关性不是因果关系?人工智能中的因果推理探秘
  • Nginx调优
  • 联德胜w801开发板(四)实现腾讯云mqtt的订阅和发布
  • LLM框架对比选择:MaxKB、Dify、FastGPT、RagFlow【RAG+AI工作流+Agent]
  • C语言内存之旅:从静态到动态的跨越
  • 研1如何准备才能找到大厂实习?
  • 游戏为什么失败?回顾某平庸游戏
  • QT 使用QTableView读取数据库数据,表格分页,跳转,导出,过滤功能
  • 【前端】CSS学习笔记(1)
  • Ubuntu离线docker compose安装DataEase 2.10.4版本笔记
  • C 语言雏启:擘画代码乾坤,谛观编程奥宇之初瞰
  • npm操作大全:从入门到精通
  • AI绘画入门:探索数字艺术新世界(1/10)
  • Linux应用编程(五)USB应用开发-libusb库