Referenz - THREADWAIT
Syntax: THREADWAIT handle
Typ: Anweisung
Kategorie: Multithreading
THREADWAIT wartet mit der Fortsetzung des Hauptprogramms, bis eine Prozedur, die mit THREADCREATE oder THREADCALL als eigener Thread gestartet wurde, beendet ist.
'handle' ist ein Wert vom Typ ANY PTR, der von THREADCREATE bzw. THREADCALL zurückgegeben wurde.
THREADWAIT erzwingt nicht die Beendigung des Threads. Wenn ein Thread ein Signal braucht, um sich selbst zu beenden, muss ein Mechanismus wie eine globale Variable verwendet werden.
Um Speicherlecks zu vermeiden, besteht die sichere Möglichkeit zur Beendigung eines Threads darin, ihm zu signalisieren, dass er beendet werden muss, und dann mit THREADWAIT auf die Beendigung zu warten, es sei denn, THREADDETACH wurde zuvor aufgerufen.
Achtung: THREADWAIT kann nicht in Zusammenhang mit THREADDETACH verwendet werden! Da THREADDETACH den Thread-Handle zerstört, kann THREADWAIT nicht mehr auf das Ende des Threads warten. Die Verwendung von THREADWAIT kann dann u. U. das Programm zum Absturz bringen.
Beispiel: siehe THREADCREATE und THREADCALL
Unterschiede zu QB: neu in FreeBASIC
Plattformbedingte Unterschiede:
- In der DOS-Version von FreeBASIC steht THREADWAIT nicht zur Verfügung, da Threads nicht unterstützt werden.
- Unter Linux starten Threads in der Reihenfolge, in der sie erstellt wurden. Dies kann unter Windows systembedingt nicht garantiert werden.
Unterschiede zu früheren Versionen von FreeBASIC:
- Seit FreeBASIC v0.17 verlangt THREADWAIT einen ANY PTR als Parameter. Davor war es ein INTEGER.
- THREADWAIT existiert seit FreeBASIC v0.13
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht THREADWAIT nicht zur Verfügung.
Siehe auch:
THREADCREATE, THREADCALL, THREADDETACH, Multithreading
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|