Multithreading in PyQt: Problem locking

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
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.
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

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?
Dies ist keine Signatur!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

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!!!
Dies ist keine Signatur!
Antworten