Code alle X Sekunden ausführen - C#?
Hallo. Wie wäre der C# Code um alle X (z.b. 20) Sekunden einen bestimmten Code ausführen zulassen (benutze es für ein Label das die Uhrzeit anzeigt)?
Danke schon im Voraus
2 Antworten
Da bräuchtest Du einen Timer. Da gibt's verschiedene von. Einmal den Standard Windows Forms Timer (der wird ggf. nicht ausgeführt, wenn das UI blockiert ist) oder den System.Threading.Timer oder den System.Timers.Timer (normalerweise nehme ich letzteren).
Diesen musst Du mit einer Anzahl Millisekunden initialisieren. Dann wird nach Ablauf dieser Zeit ein Event ausgelöst. In diesem Event kannst Du machen, was Du willst.
nutze einen Timer. Zieh ihn aus der Toolbox auf's Form.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
MessageBox.Show("Test", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
![- (Computer, programmieren, C Sharp)](https://images.gutefrage.net/media/fragen-antworten/bilder/389223289/0_big.png?v=1614342066000)
![- (Computer, programmieren, C Sharp)](https://images.gutefrage.net/media/fragen-antworten/bilder/389223289/1_big.png?v=1614342066000)
Hab es jetzt so gemacht, es hat die Uhrzeit (die angezeigt wird) aber nicht aktualliesiert:
private void timer1_Tick(object sender, EventArgs e)
{
bunifuCustomLabel1.Text = DateTime.Now.ToString("dd.MM.yyyy");
bunifuCustomLabel2.Text = DateTime.Now.ToString("HH:mm");
}
Und wann führt der Timer dass dan aus? (also wie oft und so)