da meine frage thematisch ganz gut in diesen thread passt, mache ich keinen neuen auf.
ich habe ein label in der statusleiste meiner applikation. dies zeigt einfach nur die uhrzeit an und wird sekündlich aktualisiert. normalerweise würde ich einfach einen timer nehmen, interval auf 1000ms setzen und das label entsprechend aktualisieren.
ich möchte aber "am ball bleiben" und versuche es daher mal mit async/await.
im konstruktor der form rufe ich diese methode auf:
private async void RefreshDateTimeLabel()
{
while (true)
{
await Task.Delay(1000);
lblDateTime.Caption = String.Format("{0} {1}", DateTime.Now.Date.ToLongDateString(), DateTime.Now.ToLongTimeString());
}
}
zum verständnis: ich könnte das auch mit einem thread machen, hat das dann den gleichen effekt/technischen hintergrund wie die async/await methode oben?
private void RefreshDateTime()
{
Thread thread = new Thread(delegate()
{
while (true)
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate()
{
Task.Delay(1000);
lblDatumUhrzeit.Caption = String.Format("{0} {1}", DateTime.Now.Date.ToLongDateString(), DateTime.Now.ToLongTimeString());
}));
}
}
});
thread.Start();
}
wenn ja, ist das async/await procedere ja wesentlich bequemer und lesbarer :)
danke und beste grüße!