Hallo, ich bin dabei eine WPF-Anwendung zu erstellen in der einige Berechnungen und Datenbankzugriffe erfolgen. Während der Ladezeit soll dann ein animiertes Gif als "Ladebalken" angezeigt werden.
bei klick auf einen Button soll also zunächst das das GIF visible werden und dann sollen Daten geladen und in ein Diagramm, welches sich in einem anderen Tab befindet, geschrieben werden. Das Anzeigen und das Laden des GIFs erfolgen in verschiedenen Threads.
Das Problem ist jetzt, dass das GIF entweder hackt oder erst nach dem Wechsel in den anderen Tab angezeigt wird. Es soll aber sofort nach dem Button klick mit oberster Priorität angezeigt werden und nicht unterbrochen werden. Gibt es hierfür eine bekannte Lösung?
Ja, gibt es: [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke) und [FAQ] Warum blockiert mein GUI?.
Christian
Weeks of programming can save you hours of planning
Danke erstmal für die Antwort. Aber warum hackt das GIF? Das hat doch nach dem es Visible ist nichts mehr mit der Berechnung zu tun oder ?
Erster Treffer bei der Suche nach "WPF GIF" in diesem Forum:
GIF Animation stoppt nach x Sekunden WPF
Beachte [Hinweis] Wie poste ich richtig? 1.1.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
ok sowohl das gif als auch eine Animation stockt. vielleicht ist es nicht möglich ohne das es hackt?!?!
Ich vermute das laden der Daten geht recht schnell aber das einfügen ins Diagramm dauert eben und blockiert/belastet vmtl. den GUI Thread was wiederum das GIF bremst. Ohne die Details zu kennen was wie lange dauert und wie konkret umgesetzt ist kann man hier nur raten.
ja das vermute ich auch! gib es eine Möglichkeit das Laden des Diagramms zu unterbrechen oder was kann man da machen.
Obwohl das eigentliche Schreiben der Daten ins Diagramm ist es nicht sondern, wenn ich den Tab wechsele in dem das Diagramm angezeigt werden soll, dann stockt es. Also das Diagramm sichtbar zu machen ist der Punkt an dem es Stockt