1. C# / Говнокод #2682

    +113.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    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, то имеем креатив на тему увеличения интервала опроса...

    Запостил: svist, 27 Февраля 2010

    Комментарии (2) RSS

    • Помоему мудро. :)
      Ответить
    • "креатив" также используется в логике увеличения времени запроса при обработке коллизий Ethernet
      Ответить

    Добавить комментарий