Если бы вы использовали Polly , фантастическую библиотеку для обработки переходных сбоев, вы могли бы заменить весь свой код на что-то вроде этого:
var newEvent = Policy.Handle<Exception>()
.Retry(6)
.Execute(() => webAPI.GetNewEvents(authToken, uniqueId));
(Возможно, это не на 100% правильно, поскольку у меня нет Visual Studio, доступной для тестирования прямо сейчас, но она должна быть достаточно близко, чтобы вы могли добраться туда, куда вам нужно.)
Если вы все еще хотите, чтобы ваше сообщение было записано при сбоях, оно выглядело бы так:
var newEvent = Policy.Handle<Exception>((exception, retryCount, context) =>
Log("fail", retryCount))
.Retry(6)
.Execute(() => webAPI.GetNewEvents(authToken, uniqueId));