19 lines
500 B
C#
19 lines
500 B
C#
|
namespace ConsoleApp2.Helpers;
|
|||
|
|
|||
|
public static class TaskExtensions
|
|||
|
{
|
|||
|
public static async Task WaitUntil(Func<bool> condition, int pollDelay = 25, CancellationToken ct = default)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
while (!condition())
|
|||
|
{
|
|||
|
await Task.Delay(pollDelay, ct);
|
|||
|
}
|
|||
|
}
|
|||
|
catch(TaskCanceledException)
|
|||
|
{
|
|||
|
// CancellationToken激活时Task.Delay通过抛异常来结束停止等待,不用管它
|
|||
|
}
|
|||
|
}
|
|||
|
}
|