Как сделать обработчик событий типа Timer.Tick - PullRequest
1 голос
/ 27 марта 2011

Как сделать обработчик события , который запускается в определенный интервал времени, например, System.Windows.Form.Timer имеет событие Tick, которое запускается в данный интервал времени.

Я хочу сделать что-то похожее на приведенный ниже пример.

Пример:

void myClass_Tick(object sender, EventArgs e)
{
        /*
          I want this event to be occur every 10 sec or 20 sec depends upon
          value of myClass.Interval.

          I don't want to use Timer class which check at every Tick and 
          fire my event when desired value is met.

        */
}

Обновление:

class myClass
{
    public int Interval { get; set; }
    public event EventHandler Tick; // I want this event handler to work as timer.Tick

    protected virtual void OnTick(EventArgs e)
    {
        if (Tick != null)
        {
            Tick(this, e);
        }
    }
}

Ответы [ 3 ]

3 голосов
/ 27 марта 2011

В зависимости от того, что вы хотите сделать, именно System.Threading.Timer может быть хорошим выбором.

Обновление : Здесь вы можете найти сравнение трех классов таймеров: http://msdn.microsoft.com/en-us/magazine/cc164015.aspx

3 голосов
/ 27 марта 2011

Вы ищете один из Timer классов.

Если вы не используете WinForms, вы должны использовать System.Timers.Timer.

Можно сделать это без таймера, используя многопоточность, но это того не стоит.

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