From 6df3df1c3b5f910019c5ffb3bfb569908c2948b4 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Thu, 16 Apr 2026 11:44:18 +0300 Subject: [PATCH] feat: ICoroutineYield.ToTask() extension method added --- .../Extensions/CoroutineYieldExtensions.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Engine.Core/Extensions/CoroutineYieldExtensions.cs diff --git a/Engine.Core/Extensions/CoroutineYieldExtensions.cs b/Engine.Core/Extensions/CoroutineYieldExtensions.cs new file mode 100644 index 0000000..9e09926 --- /dev/null +++ b/Engine.Core/Extensions/CoroutineYieldExtensions.cs @@ -0,0 +1,18 @@ +using System.Threading; +using System.Threading.Tasks; + +namespace Engine.Core; + +public static class CoroutineYieldExtensions +{ + public static async Task ToTask(this ICoroutineYield coroutineYield, CancellationToken cancellationToken = default) + { + while (coroutineYield.Yield()) + { + if (cancellationToken.IsCancellationRequested) + return; + + Thread.Sleep(1); + } + } +}