Как запускать функцию каждые 10 минут в цикле, используя c #? - PullRequest
0 голосов
/ 14 марта 2012

У меня есть цикл, который непрерывно запускает функцию в зависимости от некоторых условий. Теперь я хочу вызывать эту функцию каждые 10 минут только внутри цикла. Я использую Visual Studio 2005. Мой код:

    while (boolValue == false)
    {
         Application.DoEvents();
         StartAction();    //i want to call this function for every 10 minutes only
    }

Я использую System.Timers, но функция не вызывается. Я не знаю, что случилось.

Мой код:

   public static System.Timers.Timer aTimer;
   while (boolValue == false)
   {
        aTimer = new System.Timers.Timer(50000);
        aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        aTimer.AutoReset = false;
        aTimer.Enabled = true;
   }

   private static void OnTimedEvent(object source, ElapsedEventArgs e)
   {
        Application.DoEvents();
        StartAction();
   }

1 Ответ

6 голосов
/ 14 марта 2012

Почему бы просто не использовать таймер .Включайте его каждые десять минут.

Пример в более конкретной версии является довольно хорошим примером на самом деле

ОБНОВЛЕНИЕ

В вашем обновленном коде я бы изменил его на следующее:

public static System.Timers.Timer aTimer;
...
aTimer = new System.Timers.Timer(50000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.AutoReset = false; //This should be true if you want it actually looping
aTimer.Enabled = true;

Я не вижу причин для цикла while.Я предполагаю, что цикл while не запускается вообще.Кроме того, вам, вероятно, следует установить для AutoReset значение true, чтобы оно продолжалось непрерывно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...