Seite 1 von 1

QThread sicher stoppen?

Verfasst: 25. Mai 2010 21:04
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?

Verfasst: 25. Mai 2010 21:25
von Christian81
Warum sollte man einen Thread stoppen?

Verfasst: 25. Mai 2010 21:41
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.

Verfasst: 26. Mai 2010 16:05
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?

Verfasst: 26. Mai 2010 18:46
von upsala
Meiner Meinung nach nein. Aber du solltest das Flag als zumindest als volatile deklarieren.