shadowminder
Goto Top

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
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

Content-Key: 602561

Url: https://administrator.de/contentid/602561

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: mayho33
Lösung mayho33 06.09.2020 aktualisiert um 14:52:42 Uhr
Goto Top
Hello!

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.


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!
Mitglied: Shadowminder
Shadowminder 06.09.2020 um 15:09:29 Uhr
Goto Top
ich habe in der überschrift geschrieben WPF :D

LG Shadowmind
Mitglied: mayho33
mayho33 06.09.2020 aktualisiert um 15:36:01 Uhr
Goto Top
Zitat von @Shadowminder:

ich habe in der überschrift geschrieben WPF :D

LG Shadowmind

Oha!
Mitglied: 145916
Lösung 145916 06.09.2020 aktualisiert um 18:52:42 Uhr
Goto Top
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 ...
Mitglied: wiesi200
Lösung wiesi200 06.09.2020 um 20:22:00 Uhr
Goto Top