Seite 1 von 1

Thread beenden

Verfasst: 29.06.2021 17:55
von jacdelad
Muss ich was beachten, wenn ich einen Thread beende? Damit meine ich nicht KillThread, sondern wenn die Funktion normal verlassen wird. Der Library-Anzeiger zeigt mir die von selbst beendeten Threads immer als "Paused" an, bis alle beendet sind.

Re: Thread beenden

Verfasst: 29.06.2021 18:52
von mk-soft
Das ist normal und wird intern von Purebasic aufgeräumt.

Re: Thread beenden

Verfasst: 29.06.2021 19:04
von jacdelad
Ah ok.

Ich bin immer noch auf der Suche, warum sich das Programm trotzdem nicht ordnungsgemäß beendet. Das klappt nur, wenn alle Threads vorher ausgelaufen sind. Ich konnte es bisher nicht auf ein Mini-Beispiel runterbrechen.

Re: Thread beenden

Verfasst: 29.06.2021 19:33
von mk-soft
Bei Windows werden die letzten Threads einfach abgeschossen.

macOS mag es nicht wenn noch Threads laufen. Also beim beenden des Programm noch warten bis alle Threads beendet sind.
Hilfreich ist es zum Beispiel eine Globale Variable anzulegen (ExitAllThreads) und diese mit #True zu setzen und in den Threads mit abzufragen.

Re: Thread beenden

Verfasst: 29.06.2021 20:53
von jacdelad
Ja, so in der Art mache ich das. Ich hab noch ein Delay(1000) nach BeendeThreads=1 und vor dem Abschuss der restlichen Threads eingefügt. Jetzt geht es komischerweise. :D