Ich habe meinen Haupt-GUI-Thread und einen zweiten Thread, der in seinem eigenen ApplicationContext läuft (um ihn am Leben zu erhalten, auch wenn es keine Arbeit gibt). Ich möchte eine Methode auf meinem zweiten Thread von meinem GUI-Thread aufrufen, aber wenn ich nur thread.Method() aufrufen; Es scheint auf meinem Haupt-GUI-Thread ausgeführt zu werden und führt dazu, dass meine GUI nicht mehr reagiert. Was ist der beste Weg, Methoden in verschiedenen Threads aufzurufen?In C# Wie wird empfohlen, Daten zwischen 2 Threads weiterzuleiten?
Update: Was ich hier wirklich suchen ist Kommunikation zwischen 2 Threads, nicht mit einer GUI kommunizieren. Die GUI ist nur einer der Threads, die mit meinem zweiten Thread kommunizieren müssen.
Update # 2: Ok, ich muss wirklich etwas verpassen. Ich habe ein Ereignis und einen Delegaten erstellt und ließ meinen Worker-Thread das Ereignis abonnieren. Aber wenn ich Invoke aufrufen (MyEvent); Von meinem GUI thread die Arbeit, die der Worker-Thread tut, ist auf dem GUI-Thread und hängt den GUI-Thread, bis es fertig ist Verarbeitung. Ist das, was ich versuche, sogar möglich, ohne ein statisches Objekt abzufragen?
Ich versuche nicht, mit der GUI von meinem zweiten Thread zu kommunizieren, ich versuche, mit meinem Thread von der GUI zu kommunizieren. –
"Kommunikation mit einer GUI" bedeutet zweiseitig, die GUI kann öffentliche Methoden des BackgroundWorker-Threads aufrufen. –
Ja, aber das wird nicht wirklich "mit dem Hintergrund Thread kommunizieren" –