Подтвердить что ты не робот

Повторение функции каждые несколько секунд

Я хочу повторить функцию с момента открытия программы до ее закрытия каждые несколько секунд. Каким будет лучший способ сделать это на С#?

4b9b3361

Ответ 1

Используйте таймер. Существует 3 основных вида, каждый из которых подходит для разных целей.

Использовать только в приложении Windows Form. Этот таймер обрабатывается как часть цикла сообщений, поэтому таймер может быть заморожен при высокой нагрузке.

Если вам нужна синхронизация, используйте эту. Это означает, что событие tick будет запущено в потоке, который запустил таймер, что позволяет выполнять операции с графическим интерфейсом без особых проблем.

Это самый мощный таймер, который запускает тики на фоновом потоке. Это позволяет выполнять операции в фоновом режиме без замораживания GUI или основного потока.

В большинстве случаев я рекомендую System.Timers.Timer.

Ответ 2

Для этого System.Timers.Timer работает лучше всего

// Create a timer
myTimer = new System.Timers.Timer();
// Tell the timer what to do when it elapses
myTimer.Elapsed += new ElapsedEventHandler(myEvent);
// Set it to go off every five seconds
myTimer.Interval = 5000;
// And start it        
myTimer.Enabled = true;

// Implement a call with the right signature for events going off
private void myEvent(object source, ElapsedEventArgs e) { }

Подробнее см. Timer Class (.NET 4.6 и 4.5)

Ответ 3

Используйте timer. Имейте в виду, что .NET поставляется с несколькими разными таймерами. Эта статья описывает различия.