以下为伪代码 ,原理就是协程启动时传入一个回调函数,协程结束调用回调函数。
当需要判断多个协程执行是否结束时,可以用计数的方式来进行判断。协程启动时计数加1,协程结束时,计算减1,当协程数为0时所以协程执行结束。
using System;
void call()
{
StartCoroutine(CameraRun(releaseCamera));
}
IEnumerator CameraRun(Action callback)
{
initCamera(cameraWidth, cameraHeight);
(..yielding stuff..)
if (callback != null) callback();
}
void releaseCamera()
{
}