Seite 2 von 2
Re: Multithreading in PyQt: Problem locking
Verfasst: Montag 14. Februar 2011, 19:39
von lunar
„Umgehen“ kannst Du es gar nicht. Nur vermeiden, indem Du Deinen Quelltext und Deine Anwendung sauber strukturierst, so dass Klassen voneinander entkoppelt sind, direkter Zugriff auf Attribute soweit als möglich vermieden wird, und stattdessen Signale zur Kommunikation genutzt werden.
Im gezeigten Beispiel allerdings wurde man "liste" einfach bei der Erzeugung des Threads übergeben, so dass der Thread eine interne Kopie der Liste erhält.
Re: Multithreading in PyQt: Problem locking
Verfasst: Montag 14. Februar 2011, 22:01
von Shaldy
Okay, aber was, wenn man ein Signal aus dem 2. Thread heraus emittiert, welches im ersten Thread "liste" aktualisiert? wie bekomme ich dann die neue liste in den 2. Thread?
Re: Multithreading in PyQt: Problem locking
Verfasst: Montag 14. Februar 2011, 22:06
von Hyperion
Shaldy hat geschrieben:Okay, aber was, wenn man ein Signal aus dem 2. Thread heraus emittiert, welches im ersten Thread "liste" aktualisiert? wie bekomme ich dann die neue liste in den 2. Thread?
Da kapiere ich das Problem nicht. Wenn Du doch im Worker Thread einen neuen Listeneintrag generierst (oder auch mehrere), wieso sollten diese Daten dann aus dem Hauptthread noch einmal zurückgesendet werden?
Und generell: Das sollte auch anders herum funktionieren. Sprich, der Worker-Thread kann doch sicherlich auch Signale aus dem Hauptthread empfangen... hab ich zugegebener Maßen auch noch nicht gemacht.
Re: Multithreading in PyQt: Problem locking
Verfasst: Montag 14. Februar 2011, 23:52
von Shaldy
Das war jetzt mehr so eine spontane Frage, ich werde jetzt erstmal alles so umsetzen, wie gesagt. Wenn es dann immer noch Probleme gibt sag ich bescheid.
Vielen Dank an alle, für die Hilfe!!!