Возможный дубликат:
Повторить задачу несколько раз на основе пользовательского ввода в случае исключения в задаче
Я ищу способ реализовать логику повтора в TPL. Я хотел бы иметь общую функцию/класс, которая сможет вернуть задачу, которая выполнит данное действие, и в случае исключения повторит задачу, вплоть до заданного количества повторов. Я попытался сыграть с ContinueWith и вызвать обратный вызов для создания новой задачи в случае исключения, но, похоже, он будет работать только для фиксированного количества попыток. Любые предложения?
private static void Main()
{
Task<int> taskWithRetry = CreateTaskWithRetry(DoSometing, 10);
taskWithRetry.Start();
// ...
}
private static int DoSometing()
{
throw new NotImplementedException();
}
private static Task<T> CreateTaskWithRetry<T>(Func<T> action, int retryCount)
{
}