C# 为什么我不应该使用协程?
C# Why shouldn't I ever use coroutines?
此主题的评论之一:,表示:
Never never ever use coroutines. They teach bad habits from the point of view as a c# developer and will lead to a lynching if you take a regular c# job
我的问题是,这是为什么?这只是在 Unity 中还是在一般情况下? Unity 的官方虚拟现实示例 https://www.assetstore.unity3d.com/en/#!/content/51519 大量使用它们(尤其是传单示例)而不是 Invoke 或 Invoke Repeating,这些示例项目也是最近发布的。
这在很大程度上是 Unity 的事情,尽管建议适用于任何地方。
开发人员不希望迭代 IEnumerable
来更改程序的状态。这不是 IEnumerable
的目的,并且是与所有 .NET 不一致的行为。
Unity 正在做的是使用 yield return
作为伪协程,这会让不熟悉它的开发人员感到困惑。
在现代 C# 中,我们 async/await 可以实现 Unity 的意图,但 Unity 是在该功能可用之前制作的。
此主题的评论之一:
Never never ever use coroutines. They teach bad habits from the point of view as a c# developer and will lead to a lynching if you take a regular c# job
我的问题是,这是为什么?这只是在 Unity 中还是在一般情况下? Unity 的官方虚拟现实示例 https://www.assetstore.unity3d.com/en/#!/content/51519 大量使用它们(尤其是传单示例)而不是 Invoke 或 Invoke Repeating,这些示例项目也是最近发布的。
这在很大程度上是 Unity 的事情,尽管建议适用于任何地方。
开发人员不希望迭代 IEnumerable
来更改程序的状态。这不是 IEnumerable
的目的,并且是与所有 .NET 不一致的行为。
Unity 正在做的是使用 yield return
作为伪协程,这会让不熟悉它的开发人员感到困惑。
在现代 C# 中,我们 async/await 可以实现 Unity 的意图,但 Unity 是在该功能可用之前制作的。