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

Printed on: April 24, 2024 at 17:04 o'clock

Member: mayho33
Solution mayho33 Sep 06, 2020 updated at 12:52:42 (UTC)
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!
Member: Shadowminder
Shadowminder Sep 06, 2020 at 13:09:29 (UTC)
Goto Top
ich habe in der überschrift geschrieben WPF :D

LG Shadowmind
Member: mayho33
mayho33 Sep 06, 2020 updated at 13:36:01 (UTC)
Goto Top
Zitat von @Shadowminder:

ich habe in der überschrift geschrieben WPF :D

LG Shadowmind

Oha!
Mitglied: 145916
Solution 145916 Sep 06, 2020 updated at 16:52:42 (UTC)
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 ...
Member: wiesi200
Solution wiesi200 Sep 06, 2020 at 18:22:00 (UTC)
Goto Top