using System; using System.Threading; using System.Threading.Tasks; namespace BITKit { public static partial class TaskHelper { public static async Task WaitUntil(Func func) { try { await WaitUntil(func, BITApp.CancellationToken); } catch (OperationCanceledException) { } } public static async Task WaitUntil(Func func, CancellationToken cancelToken) { while (func is not null && func() is false) { cancelToken.ThrowIfCancellationRequested(); await Task.Delay(64); } } } }