yield break 和 stop coroutine 一样吗?团结

问题描述 投票:0回答:1

问题很明显。 yield break 和 stop coroutine () 的工作原理一样吗?如果是,那有什么区别?

c# unity3d coroutine
1个回答
0
投票

作用一样,但不是一回事

yield break
将结束枚举器,因为它表示迭代已完成。
yield break
作为枚举器中的最终语句可以被认为等同于枚举器函数末尾的
goto

Unity 协程使用枚举器框架,但任何返回

IEnumerator
的函数都可以是迭代器,您不需要使用协程来获得此行为。只有当您使用迭代器方法作为参数调用
StartCoroutine
时,它才会成为协程。

Couroutne 只是一个附加到 monobehabiour 的迭代器,每次更新都会调用

MoveNext
一次。

调用

StopCoroutine
因此,只需告诉单一行为停止调用
MoveNext
并处理迭代器。

那么为什么有两种方法可以做到这一点?因为他们有不同的用例。

yield break
只能在协程(枚举器)内部调用,
StopCoroutine
可以在协程外调用。

© www.soinside.com 2019 - 2024. All rights reserved.