Таймер
Без доступом до компонентів форми
using System.Threading;
void Main(string[] args){
Timer t = new Timer(F1, null, 0, 2000); // 0 - затримка до старту, 2000 - період
Console.ReadKey();
}
static void F1(Object o) {
Console.WriteLine("Час: " + DateTime.Now);
GC.Collect(); // зібрати сміття
}
Зупинити таймер
t.Dispose() - на завжди
t.Change(Timeout.Infinite , Timeout.Infinite) - можна знову запустити
Object o - об'єкт таймера, аби ни можна було керувати в F1()
Інший варіант
TimerCallback callback = new TimerCallback(F1);
Timer timer = new Timer(callback);
timer.Change(2000, 500); // затримка, як часто
WPF з доступом до компонентів форми
using System.Threading;
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(1); // щосекунди; new TimeSpan(0, 0, 1);
timer.Tick += F1;
timer.Start();
int b = 1;
void F1(object sender, EventArgs e)
{
tb1.Text = b.ToString();
b++;
}