Guten morgen liebe Community,
ich beschäftige mich nun schon seit einiger Zeit mit einem Multi-Threading-Projekt.
Im Prinzip könnte man die Architektur folgendermaßen herunterbrechen:
Der GuiThread wird vom MainThread erzeugt.
Möchte ich jetzt z.B. ein Ergebnis einer Rechnung, welche im
Ich weiß nun nicht genau, in welcher Konstellation genau, aber es kommt dennoch vor, dass ich eine InvalidOperationException bekomme mit der Beschreibung "Ungültiger threadübergreifender Vorgang".
Nun wirft das ein Paar Fragen bei mir auf:
Danke für Eure Mithilfe!
~LG Marvin
ich beschäftige mich nun schon seit einiger Zeit mit einem Multi-Threading-Projekt.
Im Prinzip könnte man die Architektur folgendermaßen herunterbrechen:
- MainThread => Arbeitsthread
- GuiThread => Zeigt die Benutzeroberfläche
- Singleton => Wird vom
MainThread
erstellt und beherbergt denGuiThread
und die öffentlich zugängliche Variable der Benutzeroberfläche (Form),ui
.
Der GuiThread wird vom MainThread erzeugt.
Möchte ich jetzt z.B. ein Ergebnis einer Rechnung, welche im
MainThread
gemacht wurde, im GuiThread
anzeigen, mache ich das immer wie folgt:Ich weiß nun nicht genau, in welcher Konstellation genau, aber es kommt dennoch vor, dass ich eine InvalidOperationException bekomme mit der Beschreibung "Ungültiger threadübergreifender Vorgang".
Nun wirft das ein Paar Fragen bei mir auf:
- Besteht trotz Invoke die Möglichkeit, diese Exception zu bekommen?
- Geht es, um z.B. ein Label zu aktualisieren, wenn man das Invoke auf die Form anwendet, die das Label beherbergt?
- Besteht die Möglichkeit herauszufinden, von welchem Thread aus eine Funktion aufgerufen wurde?
Danke für Eure Mithilfe!
~LG Marvin
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „TRiViUM“ ()