Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
while (!e.Cancel) //цикл получения остальных страниц
{
//прерывание получения данных (если заказали)
if (worker.CancellationPending)
{
e.Cancel = true;
break;
}
//получение очередной странцы
if (page == null)
page = _gateway.GetTrackPage(id, pageID);
if (page != null)
{
if (page.Type == PageType.NotReady) //если страница не готова - на следующий круг
{
page = null;
for (int i = 0; i < waitTimeout && !worker.CancellationPending; i++) //ожидание таймаута
Thread.Sleep(1000);
waitTimeout *= 2; //наращивание таймаута с каждым получением NotReady
if (waitTimeout > 10)
waitTimeout = 10;
}
.........
}
.........
}
Опрашиваем в цикле сервер вызовами _gateway.GetTrackPage. Если сервер отвечает что не готов page.Type == PageType.NotReady, то имеем креатив на тему увеличения интервала опроса...
Комментарии (2) RSS