QThread sicher stoppen?

Verschiedenes zu Qt
Antworten
bbt
Beiträge: 29
Registriert: 2. Februar 2010 19:21

QThread sicher stoppen?

Beitrag von bbt »

Hi Leute,

wie kann ich einen QThread am besten unterbrechen, auch wenn du run() Methode noch nicht fertig ist? ich habe QThread::terminate() gefunden, obwohl dieser Aufruf ja vermieden werden sollte.

Ich kenne z.B. aus Java die Thread.interrupt() Methode, die ich aber bei QThread nicht finden kann. Wie kann man diese am besten selbst implementieren?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Warum sollte man einen Thread stoppen?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Thread.interrupt setzt doch nur ein Flag im Thread, das im Thread selbst abgefragt werden muss. Das lässt sich doch ohne weiteres nachbilden.
bbt
Beiträge: 29
Registriert: 2. Februar 2010 19:21

Beitrag von bbt »

Naja, eine langanhaltende Operation die in einem Thread läuft, die aber beendet werden soll bevor sie fertig gestellt wurde muss man eben auch irgendwie beenden.

Okay, dann schreibt der "Hauptthread" das flag isInterrupted, und im nebenläufigen Thread wird dieses flag nur gelesen. Muss ich dann auf Thread Sicherheit achten? Also auf gleichzeitigen Zugriff achten?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Meiner Meinung nach nein. Aber du solltest das Flag als zumindest als volatile deklarieren.
Antworten