Business.DatabaseHandler.TryUntilTimeout C# (CSharp) Метод

TryUntilTimeout() приватный Метод

private TryUntilTimeout ( System.Action action, int timeout ) : Task
action System.Action
timeout int
Результат Task
        private async Task TryUntilTimeout(Action action, int timeout) {
            DateTime StartTime = DateTime.Now;
            while (true) {
                try {
                    await Task.Run(action);
                    return;
                } catch {
                    if ((DateTime.Now - StartTime).TotalMilliseconds > timeout)
                        throw;
                }
                await Task.Delay(500);
            }
        }