public ExecuteAsync ( Func |
||
function | Func |
|
shutdownAction | System.Action | |
cancellationToken | ||
return | Task |
public async Task ExecuteAsync(Func<Task<bool>> function, Action shutdownAction, CancellationToken cancellationToken)
{
_shutdownAction = shutdownAction;
_cancellationToken = cancellationToken;
bool shouldContinue = true;
do
{
bool didWork = await function();
if (!didWork)
{
shouldContinue = await Backoff();
}
else
{
_backoffIndex = -1;
}
if (_cancellationToken.IsCancellationRequested)
{
shouldContinue = false;
}
} while (shouldContinue);
_shutdownAction?.Invoke();
}
AsynchronousBackoffPolicy::ExecuteAsync ( Func |