using System; using Cysharp.Threading.Tasks; using DragonSoul.Shared; namespace UnityTest.ZXL { public static class ETTaskHelper { public static async ETTask WaitFinish(Action action, ETCancellationToken token = null) { ETTask task = ETTask.Create(); await task; } /// /// 等待完成(自动床奶奶) /// /// /// public static async ETTask WaitCompletion(ETCancellationToken token = null) { ETTask task = ETTask.Create(); token?.Add(Cancel); void Cancel() { task.SetResult(false); token = new ETCancellationToken(); } var isTrue = await task; token.Remove(Cancel); return isTrue; } public static async ETTask WaitCompletion(ETTask task, ETCancellationToken token = null) { task = ETTask.Create(); token?.Add(Cancel); void Cancel() { task.SetResult(false); token = new ETCancellationToken(); } var isTrue = await task; token?.Remove(Cancel); return isTrue; } public static async ETTask WaitTime(float time, ETCancellationToken token = null) { await UniTask.Delay(TimeSpan.FromSeconds(time)); } } }