首页 > 试题广场 >

请描述yield在协程(coroutine)中的作用,以下是

[问答题]
请描述yield在协程(coroutine)中的作用,以下是Unity中的协程功能一段代码是否有问题?如果有,如何修改?并写出调用此协程的代码。 
    IEnumerator StartSocketLoop()
    {
        while (true)
        {
            if (ExcuteReceiveBuffer())
                continue;
            // 处理发送队列
            if (ExcuteSenderBuffer())
                continue;
            yield return 0;
        }
    }
yield 为暂停目前方法,暂停结束后在此处继续执行;
没有给出ExcuteReceiveBuffer()为false的情况
可以使用Startcoroutine(StartSocketLoop());或Startcoroutine(“StartSocketLoop”);以开始该协程

发表于 2022-02-26 20:32:03 回复(0)
yield return为暂停此方法并且下一帧从此处执行 可以在此处插入其他方法或返回值
此方法将逐帧循环执行 
没有给出ExcuteReceiveBuffer()为false的情况 或许需要yield break;终止?
可使用StartCoroutine("StartSocketLoop");调用此携程以便提前终止
发表于 2021-10-28 00:43:11 回复(0)