using System.Collections;
namespace GFramework.Game.coroutine;
///
/// 全局协程作用域管理器,提供全局唯一的协程执行环境
///
public static class GlobalCoroutineScope
{
private static CoroutineScope? _instance;
///
/// 获取全局协程作用域实例,如果未初始化则抛出异常
///
private static CoroutineScope Instance =>
_instance ?? throw new InvalidOperationException("GlobalScope not initialized");
///
/// 初始化全局协程作用域
///
/// 协程调度器实例
public static void Initialize(CoroutineScheduler scheduler) =>
_instance = new CoroutineScope(scheduler, "GlobalScope");
///
/// 在全局作用域中启动一个协程
///
/// 要执行的协程枚举器
/// 协程句柄,用于控制和管理协程生命周期
public static CoroutineHandle Launch(IEnumerator routine) => Instance.Launch(routine);
}