Лучший рефакторинг для страшного цикла While (True) - PullRequest
13 голосов
/ 28 октября 2008

Если, как я, вы дрожать на месте While (True) цикла, то вы тоже должны подумать, долго и упорно о лучшем способе рефакторинга, рефакторинга его. Я видел несколько разных реализаций, ни одна из которых не была лучше других, например комбинация таймера и делегата.

Так каков наилучший способ, которым вы придумали или видели, как реорганизовать страшный цикл "Пока" (правда)?

Редактировать : Как уже упоминалось в некоторых комментариях, я хотел, чтобы этот вопрос был рефакторингом с "бесконечным циклом", таким как запуск службы в стиле Windows, где единственными условиями остановки будут OnStop или фатальное исключение .

Ответы [ 12 ]

1 голос
/ 28 октября 2008

Я не против, когда бесконечный цикл содержится в окне и умирает вместе с окном

Вспомните рекурсию Хассельхоффа.

0 голосов
/ 18 мая 2016
void whiletrue_sim(void)
  {
    //some code
    whiletrue_sim();
  }

Предупреждение. Ваш стек может быть переполнен в зависимости от языка, оптимизатора и других факторов.

...