From a3483f23d8e04442b414762a95a130226a4f65bc Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Thu, 11 Dec 2025 18:02:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=BF=AD=E4=BB=A3=E5=99=A8?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Convention/[Runtime]/Config.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Convention/[Runtime]/Config.cs b/Convention/[Runtime]/Config.cs index de04ac6..83657a1 100644 --- a/Convention/[Runtime]/Config.cs +++ b/Convention/[Runtime]/Config.cs @@ -1332,7 +1332,7 @@ namespace Convention while (loadingTask.Count > 0) { // 防止大量无延迟函数的使用导致假死机 - if (Time.realtimeSinceStartup - CoroutineStarter.waitClock > maxWaitClock) + //if (Time.realtimeSinceStartup - CoroutineStarter.waitClock > maxWaitClock) { yield return null; } @@ -1347,6 +1347,23 @@ namespace Convention } } } + /// + /// 包装即将用于协程的迭代器成为一个防止假死机的迭代器 + /// + /// + /// + public static IEnumerator AvoidFakeStopWithoutDeepStack(IEnumerator ir, float fps = 5) + { + float maxWaitClock = 1 / fps; + while (ir.MoveNext()) + { + // 防止大量无延迟函数的使用导致假死机 + if (Time.realtimeSinceStartup - CoroutineStarter.waitClock > maxWaitClock) + { + yield return null; + } + } + } public static Coroutine StartCoroutine(IEnumerator coroutine) { return CoroutineStarter.StartCoroutine(coroutine);