Threads
Verfasst: Sa, 30. Apr 2016 16:59
Hallo,
Freitag abend hatte ich eine Unterhaltung zum Thema Threads, und es ist sicher auch meinem schlechten Namensgedächtnis geschuldet, dass ich mich nicht mehr erinnere, wer mich gefragt hat.
Hintergrund war die Frage, wie Threads beendet werden können, da beim Beenden über den Close-Button der Thread noch sichtbar bleibt.
Ich habe das mal in einem meiner Programme nachvollzogen:
Wenn man das Programm im Debugger ablaufen lässt, und nach dem Schliessen des Dialogs, der im Zusammenhang mit dem Thread steht, bleibt der Thread im Debugger sichtbar - allerdings nur für einige Sekunden, dann entfernt der Garbage-Collector den Thread aus dem Speicher.
Aus Dokumentationszwecken könnte man auch folgenden Code verwenden, damit deutlich ist, dass der Thread hier beendet wird:
Erforderlich ist es nicht, aber man sieht dann auch nach einem Jahr, dass hier der Thread beendet wird. Leider habe ich in der Dokumentation keinen Hinweis darauf gefunden, was mit Threads passiert, die über den obersten Code-Ausschnitt beendet werden, und basiere meine Aussagen auf dem Verhalten, dass ich im Debugger sehe.
Freitag abend hatte ich eine Unterhaltung zum Thema Threads, und es ist sicher auch meinem schlechten Namensgedächtnis geschuldet, dass ich mich nicht mehr erinnere, wer mich gefragt hat.
Hintergrund war die Frage, wie Threads beendet werden können, da beim Beenden über den Close-Button der Thread noch sichtbar bleibt.
Ich habe das mal in einem meiner Programme nachvollzogen:
Code: Alles auswählen
...
WHILE nEvent <> xbeP_Close
..
END
RETURN(.T.)
Aus Dokumentationszwecken könnte man auch folgenden Code verwenden, damit deutlich ist, dass der Thread hier beendet wird:
Code: Alles auswählen
...
WHILE nEvent <> xbeP_Close
..
END
ThreadObject():quit()
RETURN(.T.)