Threaded
BeschreibungThreaded[.<Typ>] <Variable[.<Typ>]> [= <konstanter Ausdruck>] [, ...]
Threaded ermöglicht das Erstellen von Thread-basierten beständigen Variablen, Arrays (außer multi-dimensionaler Arrays), Listen oder Maps.
Das bedeutet, dass jeder Thread seine eigene Version des Objekts haben wird. Dies ist nur nützlich beim Schreiben von "multithreaded" Programmen (mit mehreren Prozessen). Wenn nach Threaded ein Typ angegeben wird, dann wird der Standard-Typ für diese Deklaration geändert.
Jeder Variable kann direkt ein Standard-Wert zugewiesen werden, aber dies muss ein konstanter Wert sein. Die Thread-Initialisierung erfolgt beim ersten Start des Threads. Das bedeutet, dass bei gleichzeitiger Deklaration und Zuweisung einer Thread-Variable die Variable für alle Threads zugewiesen wird. Siehe Beispiel 2. Beim Deklarieren eines "Threaded" Arrays, muss der Dimensions-Parameter ebenfalls ein konstanter Wert sein.
Ein "Threaded" Objekt kann nicht in einer Prozedur deklariert werden, sein Geltungsbereich ist immer global.
Beispiel: 1 Mit Variablen
Threaded Counter Counter = 128 Procedure Thread(Parameter) Debug Counter ; Wird null anzeigen, da dieser Thread diese Variable bisher nicht verwendet hat Counter = 256 Debug Counter ; Wird 256 anzeigen EndProcedure Thread = CreateThread(@Thread(), 0) WaitThread(Thread) ; Warte auf das Beenden des Threads Debug Counter ; Wird 128 anzeigen, auch wenn 'Counter' innerhalb des Threads verändert wurde
Beispiel: 2 Alle Threads
Threaded Counter = 128 ; Definiert für alle Threads Procedure Thread(Parameter) Debug Counter ; Wird 128 anzeigen, da beim Programmstart auch ein Thread gestartet wurde Counter = 256 Debug Counter ; Wird 256 anzeigen EndProcedure Thread = CreateThread(@Thread(), 0) WaitThread(Thread) ; Warte auf das Beenden des Threads Debug Counter ; Wird 128 anzeigen, auch wenn 'Counter' innerhalb des Threads verändert wurde