Задать вопрос
@martensit

Есть более простой сниппет «повторять до успеха»?

while (true)
   {
      try
      {
         File.WriteAllText(@"C:\\serv1.txt", "text");
         break;
      }
      catch (Exception)
      {
         Thread.Sleep(300);
      }
   }
  • Вопрос задан
  • 184 просмотра
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • Учебный центр IBS
    DEV-001_NET Шаблоны проектирования GoF. Редакция для .NET
    1 неделя
    Далее
Решения вопроса 1
Попробуйте такой метод (нет возможности проверить). На вход поддается делегат, который необходимо выполнить.

void UntilSuccess(Action action) {
  if (action == null)
    throw new ArgumentNullException();

  while (true) {
      try
      {
         action.Invoke();
         break;
      }
      catch { Thread.Sleep(300); }
  }
}

// Использовать так:
UntilSuccess(() => File.WriteAllText(@"C:\\serv1.txt", "text"));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
EreminD
@EreminD
Кое-что умею
а если в рекурсию?
типа
private void writeText(){
  try
      {
         File.WriteAllText(@"C:\\serv1.txt", "text");
      }
      catch (Exception)
      {
         Thread.Sleep(300);
         writeText();
      }
}

И просто в коде вызвать writeText();
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы