From 065d485f3217d75be1981a6807c487dbd766f2ab Mon Sep 17 00:00:00 2001 From: mewlist Date: Wed, 22 May 2024 22:38:25 +0900 Subject: [PATCH] Add WhenAll() utility --- Runtime/Helpers/TaskHelper.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/Runtime/Helpers/TaskHelper.cs b/Runtime/Helpers/TaskHelper.cs index 050313b..646ee9a 100644 --- a/Runtime/Helpers/TaskHelper.cs +++ b/Runtime/Helpers/TaskHelper.cs @@ -1,4 +1,6 @@ -using System.Threading; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; #if USE_UNITASK using Cysharp.Threading.Tasks; @@ -21,5 +23,19 @@ public static async Task NextFrame(CancellationToken ct = default) await TaskHelperInternal.NextFrame(ct); } #endif + + public static async ValueTask WhenAll(params ValueTask[] tasks) + { + var results = new T[tasks.Length]; + for (var i = 0; i < tasks.Length; i++) + results[i] = await tasks[i].ConfigureAwait(false); + return results; + } + + public static async ValueTask WhenAll(params ValueTask[] tasks) + { + foreach (var t in tasks) + await t.ConfigureAwait(false); + } } } \ No newline at end of file