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

    +137

    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
    public static IEnumerable<Step> OdometerPeriodicChecker(ScaleContext context)
        {
          //проверить, существуют ли таблицы
          OdometerTaskHlp.CheckAndCreateTables();
    
          while (context.IsRunning)
          {
            //Десятисекундная задержка после запуска программы
            yield return new WaitStep(TimeSpan.FromSeconds(10));
    
            try
            {
              foreach (LightAuto auto in context.Auto.All)
              {
                //CarOdometerChecker(context, auto);
              }
    
            }
            catch (Exception ex)
            {
              TraceHlp2.WriteException(ex);
            }
    
            //задержка выполнения задачи на 3 часа
            yield return new WaitStep(TimeSpan.FromSeconds(OdometerTaskHlp.TimeInterval * 3600));
          }

    Они запускают отдельный поток,
    в потоке запускают этот метод while (context.IsRunning).
    Потом им надо вернуться из задачи, для этого используется yield return.

    Запостил: Flyperformances, 06 Сентября 2012

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

    • этой осенью во всех системах контроля версий
      захватывающий блокбастер "Повелители Времени"
      Ответить
    • Пока течет мой любимый кетчуп.
      Ответить
    • Можно разнести логику срабатывания расписания (10 секунд, потом каждые три часа) и саму регулярную работу с //CarOdometerChecker(context, auto);

      Можно посмотреть в сторону библиотеки Reactive Extensions
      http://www.rsdn.ru/article/dotnet/ReactiveExtensions.xml
      http://leecampbell.blogspot.com/2010/08/reactive-extensions-for-net.html
      Ответить
    • Отдельного потока в этом коде я почему-то не нашел. Где он? :)
      Ответить

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