gpt4 book ai didi

c# - 调用并行协程并等待所有协程结束

转载 作者:行者123 更新时间:2023-12-03 19:43:32 25 4
gpt4 key购买 nike

我有一些协程:

IEnumerator a(){ /* code */ }
IEnumerator b(){ /* code */ }
IEnumerator c(){ /* code */ }

我想创建一个调用 a 的协程, bc并行但在继续之前等待所有这些完成,例如:
IEnumerator d(){
StartCoroutine(a());
StartCoroutine(b());
StartCoroutine(c());
wait until all of them are over
print("all over");
}

显然我可以为每个协程使用一个 bool 值来保存其当前状态,但由于这种方法不可扩展,我更喜欢更直接的解决方案。

最佳答案

我使用的方法,代码也有点清晰,好用:

IEnumerator First() { yield return new WaitForSeconds(1f); }
IEnumerator Second() { yield return new WaitForSeconds(2f); }
IEnumerator Third() { yield return new WaitForSeconds(3f); }

IEnumerator d()
{
Coroutine a = StartCoroutine(First());
Coroutine b = StartCoroutine(Second());
Coroutine c = StartCoroutine(Third());

//wait until all of them are over
yield return a;
yield return b;
yield return c;

print("all over");
}

关于c# - 调用并行协程并等待所有协程结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59348515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com