码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Unity-协同程序原理


     知识点一 协程的本质

    知识点二 协程本体是迭代器方法的体现

     1、协程函数本体

    定义一个协程函数、以及一个类:

     我们如果单独的调用协程Test函数的话,不会执行任何语句。

     没有任何输出。

     为什么我们无法单独调用协程函数,需要用StartCoroutine()函数?

    因为此时Test内的函数没有真正被执行,它只是返回了一个迭代器的对象。

     我们可以将这个对象存起来,并且不通过协程调度器去执行它。

     IEnumerator内部方法,属性如下。

    使用IEnumerator中的MoveNext()方法。 

     发现竟然打印了。

    再调用它的Current属性,发现打印的是yield return的返回值。

     多次执行上述方法和属性。

     运行结果如下。

     甚至我们可以调用Current返回的值。

     

     打印出来的为10。

     协程的本质:协程函数本体(迭代器)+ 协程调度器

     另一个问题来了,我们可以用MoveNext()和Current来一步步执行协程函数。但是协程函数中有n个yield return 怎么办?写n个MoveNext()和Curren吗?

    注意:MoveNext()返回bool值,当协程函数内还有可以执行的内容时返回true,没有返回flase。

     通过一个while循环就可以执行所有内容。

     运行结果如下:

     2、协程调度器

     

     

     

  • 相关阅读:
    群狼调研(长沙学校满意度调查)开展长沙游客满意度调查
    Leetcode(406)——根据身高重建队列
    城市路边停车收费系统/停车收费管理系统
    专利非正常申请,需要我们注意什么
    PyQt学习笔记-获取Hash值的小工具
    SpringMVC的架构有什么优势?——表单和数据校验(四)
    Vue路由实例
    javascript 记录
    Java真实面试(苏州安硕信息)
    1564: [蓝桥杯2021初赛] 杨辉三角形与空间与相乘
  • 原文地址:https://blog.csdn.net/qq_42705793/article/details/127657926
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号