Wie man windows-Formular UI-responsive?
Dies ist ein häufiges problem für alle Entwickler, ich bin auf der Suche nach der besten Lösung, um windows forms-Benutzeroberfläche reagiert.
Ich habe eine animierte GIF-Datei, um die Fortschritte zu zeigen von meinem calcuation auf windows-Formular. Ich nahm ein Bild-Steuerelement platziert und animiert gif ein. jetzt, wo mein calcuation beginnt - der animaged gif friert. Ich will die Umkehrung der animation sichtbar sein sollen, wenn ich auf die Berechnung.
Jeder zu dem Punkt Gedanken? Eine einfache Lösung ist, um eine Fortschrittsanzeige anzuzeigen, um den Benutzer, während Sie komplexe Berechnungen hinter der Szene
Meine app ist eine single-threaded-Anwendung, und ich will eine einfache Lösung, nicht auf der Suche nach multi-threads oder hintergrund-worker-Art-Technologien.
Hilfe?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mehrere threads wäre meine Empfehlung. Ein bisschen unordentlich erste mal versuchen 😉
Einfachste Modell: Ein thread für die GUI, und ein thread für alles, was Arbeit, die Sie tun müssen.
Überprüfen dieser link.
Anwendung.doevents
Legen Sie es in die Schleife. Es gibt den UI-die Zeit, um seine Dinge.
Gut, der einzige wirkliche Weg, das zu tun 2 Dinge auf einmal (wie Berechnungen, und halten immer noch ansprechbar) ist die Verwendung von threads. Wenn Sie nicht wollen, um explizit die Nutzung von threads, dann überprüfen, um zu sehen, ob es irgendwelche asynchrone Aufrufe, die Sie verwenden können, um es in den hintergrund. Abgesehen davon, dass eine Menge der Anwendung.DoEvents-Aufrufe, wo immer Sie tun, jede Menge Arbeit.
Ich werde an den Ort Jeff auf dieses:
Coding Horror: Ist DoEvents Böse?
"einfache Lösung zum anzeigen, ein Fortschritt für den Benutzer, während Sie komplexe Berechnungen hinter der Szene ?"
"nicht auf der Suche nach multi-threads oder hintergrund-worker-Art-Technologien."
Welche dieser Wünsche ist für Sie wichtiger? Sie müssen wählen Sie eine oder das andere.