Вы можете использовать System.Threading.Timer
без проблем.
Вот пример таймера, который выполняет каждые 1 сек:
using System.Threading;
...
TimerCallback timerCallBack = OnTimerCallback;
Timer timer = new Timer(timerCallBack, null, 0, 1000);
...
private void OnTimerCallback(object state)
{
...
}
Если вы хотите обновить любой пользовательский интерфейс, связанные элементы из таймера, вы должны будете использовать Dispatcher.BeginInvoke
, потому что таймер работает в своем собственном нить, а пользовательский интерфейс принадлежит основному потоку, который запускает таймер. Вот пример:
private void OnTimerCallback(object state)
{
Dispatcher.BeginInvoke(
System.Windows.Threading.DispatcherPriority.Normal,
(ThreadStart) (() => Background = Brushes.Black));
}