Laden...

Gui entkoppeln

Letzter Beitrag vor 13 Tagen 2 Posts 191 Views
Gui entkoppeln

Hallo,

in der Dokumentation zu einer API steht, dass kein Multithreading unterstützt wird. Ich habe jetzt eine Erweiterung programmiert, wo eine Fortschrittsanzeige implementiert ist, weil der Vorgang unter Umständen länger dauern kann. Natürlich ist die Gui eingefroren während der Aktion, so dass der Sinn der Fortschrittanzeige nicht gegeben ist.

Meine Versuche mit Threading und async/await führten allesamt dazu dass das Programm abschmiert. Welche Möglichkeiten habe ich noch, um die Gui zu entkoppeln? Ich verwende das Framework 4.8.1.

Lies dir doch Mal deine Frage durch und stell dir vor, Du bist ein potentieller Helfer und hast keine Ahnung, das das Projekt ist?

Welches UI-Framework?
Wie sieht der async/await Code aus?

Und wie man das löst hängt stark vom Kontext ab.
Bei einer dauerthaft im Hintergrund-/ThreadPool-Thread arbeitende Funktion muss die Aktualisierung in den UI-Thread synchronisiert werden, dafür gibt's meistens entsprechende Methoden.
Und wenn die Arbeit async stattfindet (z.B. HTTP-Requests), dann muss man das in der Regel nicht beachten, da die Synchronisation automatisch stattfinden - vorausgesetzt, Du nutzt es richtig.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.