C# - Codeteil endlosschleife?

DaniWega

Newbie
Registriert
Mai 2014
Beiträge
4
Hallo,
ich hab ein kleines C# Programm welches unter anderem den freien Festplattenspeicher ausliest.
Das Program liest jetzt beim starten 1x den Wert aus und schreibt ihn in ein Label. Nun will ich aber, dass der Wert alle 10 Sekunden aktualisiert wird. Wie kann ich das umsetzen das dies im Hintergrund abläuft und die restlichen Funktionen nicht beeinträchtigt?
Danke und Lg
 
Extra Thread für das auslesen starten. In diesem Thread (Pseudcode):
Code:
while (1)
   Auslesen ()
   InLabelSchreiben ()
   sleep (10)
end
 
Owei :D
a) Sleep(10) sind 10ms, wenn dann sleep(10000)
b) mach vor jedem sleep ein Application.DoEvents() glaube so hieß das.

Beschäftige dich in dem Fall lieber mit Threading, da dein Prog 10s nicht reagieren wird
 
Code:
Task.Run(async () =>
{            
        while(true)            
        {
             var wert = ...// Wert auslesen
             await Dispatcher.InvokeAsync(() => label1.Content = wert); // update ui
             await Task.Delay(10000); // sleep 10s
        }
});

Kompaktvariante für .NET 4.5 und WPF Anwendungen. Bitte nur verwenden wenn komplett verstanden :D
 
Zuletzt bearbeitet:
Das was BloodFreeze macht ist genau richtig. So sollte man es denke am besten machen
 
Wieso so kompliziert?
Ein 10s Timer und im Tick Event den Wert auslesen und ins Label schreiben.
 
Jo, der zweite Post hat mich in die andere Richtung getrieben :D Ein Timer ist am simpelsten und man kann weniger falsch machen.
 
Zurück
Oben