SamEvilash (30.10.2018)
Thema: Thread Probleme mit Invoken
-
14.12.2013, 21:30 #1
Thread Probleme mit Invoken
Mainwork mw = new Mainwork(this, email, pass, secret);
playerthread = new Thread(mw.DoMainWork);
playerthread.Start();
Mit dem Code starte ich den Thread.
Dann bekomme ich folgenden Exception:
Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement listView1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.
Ich hoffe mal ihr wisst was ich meine, danke schonmal!Geändert von rVs14 (14.12.2013 um 21:31 Uhr)
-
The Following User Says Thank You to rVs14 For This Useful Post:
-
14.12.2013, 21:49 #2
- Registriert seit
- 11.01.2013
- Beiträge
- 32
Thanked 8 Times in 7 PostsAW: Thread Probleme mit Invoken
Hallo,
Du solltest die Arbeit in andere Threads auslagern, die UI-Operation sollten aber von einem thread aus erfolgen, sonst kann es zu Problemen kommen.
-
15.12.2013, 05:22 #3
- Registriert seit
- 15.11.2011
- Beiträge
- 8.133
- Blog Entries
- 5
Thanked 9.412 Times in 3.248 PostsAW: Thread Probleme mit Invoken
Ne eigentlich nicht. Du hast die Antwort doch schon selbst gesagt: Das Control muss invoked werden wenn es wie bei dir aus einem anderen Thread aufgerufen wird und trotzdem threadsicher sein soll, wieso tust du es dann nicht? xD
Zum Prüfen gibt es die Eigenschaft InvokeRequired, dann ist das ganze flexibel einsetzbar. Ich würde da produktiv aber eher einer Hilfsfunktion nutzen:
void InvokeIfRequired(ISynchronizeInvoke control, MethodInvoker action){
if (control.InvokeRequired) {
control.Invoke(action);
} else {
action();
}
}
Dann hast du nicht bei jedes mal ne If-Abfrage nach dem Schema if(control.InvokeRequired) usw. sondern rufst einfach InvokeIfRequired auf:
testControl.InvokeIfRequired(() => {
// Was auch immer mit dem Control gemacht werden soll, zb
testControl.Enabled = false;
});
Hast den Thread ja als gelöst markiert, aber vielleicht bringts dir oder ansonsten jemand anderem trotzdem was.
-
The Following 2 Users Say Thank You to DMW007 For This Useful Post:
DiscoDieter (16.12.2013), SamEvilash (30.10.2018)
Ähnliche Themen
-
Der STRG+V Thread
Von Mr.Bombastic im Forum OffTopicAntworten: 61Letzter Beitrag: 13.03.2015, 02:50 -
[BUG] Thread erstellen
Von DANP im Forum FeedbackAntworten: 1Letzter Beitrag: 26.12.2013, 23:58 -
PHP Unterschied zwischen Thread Safe und Non Thread Safe?
Von ThunderStorm im Forum PHPAntworten: 1Letzter Beitrag: 07.07.2013, 17:16 -
Java New Thread
Von uncopyable im Forum JavaAntworten: 2Letzter Beitrag: 04.04.2012, 14:45 -
[Hilfe] Thread -> Timer im GUI Thread starten
Von feeback im Forum .NetAntworten: 2Letzter Beitrag: 04.01.2012, 23:55
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.