Verändere den Text in einer TextBox WPF alle 5 Sekunden ab dem Laden des Fensters in CSharp
Hallo zusammen!
ich baue gerade mit dem .Net Framework eine WPF Anwendung mit C# im Back-End.
Mein Problem ist, das, wenn ich versuche nach dem laden des Fensters (Loaded Event) den inhalt einer textbox zu verändern, das programm einfriert und ich es über den taskmgr schließen muss.
wenn jemand von euch einen lösungsvorschlag hat, gerne schreiben.
Hier der Code der nach dem laden ausgeführt werden solte
LG Shadowmind
ich baue gerade mit dem .Net Framework eine WPF Anwendung mit C# im Back-End.
Mein Problem ist, das, wenn ich versuche nach dem laden des Fensters (Loaded Event) den inhalt einer textbox zu verändern, das programm einfriert und ich es über den taskmgr schließen muss.
wenn jemand von euch einen lösungsvorschlag hat, gerne schreiben.
Hier der Code der nach dem laden ausgeführt werden solte
private void Loaded_Main_Linker(object sender, MouseButtonEventArgs e)
{
int slider = 0;
while (true)
{
System.Threading.Thread.Sleep(5000);
if (slider == 0)
{
TextBox_Slider.Text = "Be successful, with";
slider++
}
else
{
TextBox_Slider.Text = "Link your tasks, with";
slider--
}
}
}
LG Shadowmind
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 602561
Url: https://administrator.de/contentid/602561
Ausgedruckt am: 26.11.2024 um 03:11 Uhr
5 Kommentare
Neuester Kommentar
Hello!
Du durchläufst eien While-Schleife ohne Abbruchbedingung. Und weil du ein Sleep eingebaut hast das im Main-Thread läuft friert dein UI ein.
Gib deiner While zuerst mal eine richtige Abbruchbedingung mit:
Wenn du das geschafft hast, lasse deine Methode in einem eigenen Thread oder Backgroundworker laufen. So friert die GUI nicht mehr ein.
Beispiele finden sich genug im Netz.
Wenn du uns noch sagen würdest welchen Projecttype du verwendest (WPF, UWP, Forms), dann könnten wir dir sagen wie du die Objects richtig ansprichst.
Grüße!
Zitat von @Shadowminder:
Mein Problem ist, das, wenn ich versuche nach dem laden des Fensters (Loaded Event) den inhalt einer textbox zu verändern, das programm einfriert und ich es über den taskmgr schließen muss.
Mein Problem ist, das, wenn ich versuche nach dem laden des Fensters (Loaded Event) den inhalt einer textbox zu verändern, das programm einfriert und ich es über den taskmgr schließen muss.
Du durchläufst eien While-Schleife ohne Abbruchbedingung. Und weil du ein Sleep eingebaut hast das im Main-Thread läuft friert dein UI ein.
Gib deiner While zuerst mal eine richtige Abbruchbedingung mit:
While (xyz != false)
{
...
...
}
Wenn du das geschafft hast, lasse deine Methode in einem eigenen Thread oder Backgroundworker laufen. So friert die GUI nicht mehr ein.
Beispiele finden sich genug im Netz.
Wenn du uns noch sagen würdest welchen Projecttype du verwendest (WPF, UWP, Forms), dann könnten wir dir sagen wie du die Objects richtig ansprichst.
Grüße!
Oha!
Ist ja logisch, mit deinem Thead.Sleep blockierst du den UI Thread und somit steht das ganze natürlich, so wird das nie was ...
Dagegen hat die G-Apotheke genügend Medikamente
https://www.c-sharpcorner.com/article/update-ui-with-wpf-dispatcher-and- ...
https://docs.microsoft.com/de-de/windows/uwp/debug-test-perf/keep-the-ui ...
https://www.edv-buchversand.de/embarcadero/productinfo.php?cnt=productin ...
Dagegen hat die G-Apotheke genügend Medikamente
https://www.c-sharpcorner.com/article/update-ui-with-wpf-dispatcher-and- ...
https://docs.microsoft.com/de-de/windows/uwp/debug-test-perf/keep-the-ui ...
https://www.edv-buchversand.de/embarcadero/productinfo.php?cnt=productin ...
Hallo,
du brauchst einfach einen Timer
https://docs.microsoft.com/de-de/dotnet/api/system.windows.threading.dis ...
du brauchst einfach einen Timer
https://docs.microsoft.com/de-de/dotnet/api/system.windows.threading.dis ...