diff --git a/GFramework.Core/coroutine/CoroutineScheduler.cs b/GFramework.Core/coroutine/CoroutineScheduler.cs index 8c20f38..eec8b37 100644 --- a/GFramework.Core/coroutine/CoroutineScheduler.cs +++ b/GFramework.Core/coroutine/CoroutineScheduler.cs @@ -395,7 +395,8 @@ public sealed class CoroutineScheduler( if (!_tagged.TryGetValue(tag, out var handles)) return 0; - return handles.Count(Kill); + var copy = handles.ToArray(); + return copy.Count(Kill); } /// @@ -486,6 +487,9 @@ public sealed class CoroutineScheduler( case WaitForCoroutine wfc: wfc.Complete(); break; + default: + // 其他类型的等待指令不需要特殊处理 + break; } s.State = CoroutineState.Running;