namespace MesETL.Shared.Helper; public static class TaskExtensions { public static async Task WaitUntil(Func condition, int pollDelay = 25, CancellationToken ct = default) { try { while (!condition()) { await Task.Delay(pollDelay, ct); } } catch(TaskCanceledException) { // CancellationToken激活时Task.Delay通过抛异常来结束停止等待,不用管它 } } }