none
Выполнение некого функционала по таймеру RRS feed

  • Вопрос

  • Всем привет.

    Мне необходимо, что бы происходило выполнение задачи через определенный промежуток времени. Я знаю, что можно реализовать через таймер, например

    Создаем класс, в данном классе  создаем таймер и переопределяем делегат

     

    public
    
     class
    
     TimerTask
    {
        public
    
     TimerTask()
        {
            //
    
    
            // TODO: Add constructor logic here
    
    
            //
    
    
        }
    
        public
    
     void
    
     ApplicattionStart(Object sender, EventArgs e)
         {   
            Timer tm=new
    
     Timer(new
    
     TimerCallback(GetTaskTimer),null
    
    ,TimeSpan.Zero,TimeSpan.FromMinutes(1.0));
            
        }
    
        public
    
     static
    
      void
    
     GetTaskTimer(object
    
     state)
        {
    <br/>
    //тут какой-то код<br/>
    
    
    }
    }
    

    А теперь я запускаю его в Global.asax

     

     void
    
     Application_Start(object
    
     sender, EventArgs e) 
        {
            // Code that runs on application startup
    
    
            TimerTask tm = new
    
     TimerTask();
            tm.ApplicattionStart(sender, e);
    
        }
    
    Один раз отрабатывает, но таймер не работает, хотя по идее должен. В чем проблема? Или как можно организовать по другому данную задачу?Или  необходимо это реализовывать через web-сервис?
    • Изменено Evgen1982MVP 7 апреля 2010 г. 15:26 редактирование темы
    7 апреля 2010 г. 10:22

Ответы

  • Объект типа TimerTask создается в событии AplicationStart после того как событие отрабатывает -  объект выходит из области видимости и уничтожается  сборщиком мусора, объявите его вне события а в событии инициализируйте.

    Тоже самое с объектом Timer в вашем методе AplicationStart.

    • Помечено в качестве ответа Evgen1982MVP 7 апреля 2010 г. 15:32
    7 апреля 2010 г. 13:51

Все ответы

  • Уточните, что вы конкретно имеете ввиду - "выполнение определенной задачи на протяжении работы проекта" или все таки "выполнение некого функционала по таймеру".

    7 апреля 2010 г. 13:45
  • Объект типа TimerTask создается в событии AplicationStart после того как событие отрабатывает -  объект выходит из области видимости и уничтожается  сборщиком мусора, объявите его вне события а в событии инициализируйте.

    Тоже самое с объектом Timer в вашем методе AplicationStart.

    • Помечено в качестве ответа Evgen1982MVP 7 апреля 2010 г. 15:32
    7 апреля 2010 г. 13:51
  • Уточните, что вы конкретно имеете ввиду - "выполнение определенной задачи на протяжении работы проекта" или все таки "выполнение некого функционала по таймеру".

    выполнение некого функционала по таймеру
    7 апреля 2010 г. 15:25