Ich benutzte Threads eigentlich recht selten, also meist nur meist nur ein Thread für das Fenster und ein für die Aktion.
Nun wirds aber mal Zeit mich mit dem Thema auseinander zu setzten

Und zwar hab ich folgendes Beispiel:
Eine Datei wird Blockweise gelesen und mit dem Block werden 3 Aufgaben bearbeitet.
Code: Alles auswählen
Define *Buffer, iRead, x
#Buffersize = 8192
Procedure Aufgabe1(*Buffer, BufferSize, iBlock)
Debug "Aufgabe1 bearbeitet Block: " + iBlock
EndProcedure
Procedure Aufgabe2(*Buffer, BufferSize, iBlock)
Debug "Aufgabe2 bearbeitet Block: " + iBlock
EndProcedure
Procedure Aufgabe3(*Buffer, BufferSize, iBlock)
Debug "Aufgabe3 bearbeitet Block: " + iBlock
EndProcedure
*Buffer = AllocateMemory(#Buffersize)
If *Buffer
If ReadFile(0, "X:\xpbios_509.bin")
While 1
iRead = ReadData(0, *Buffer, #Buffersize)
If Not iRead : Break : EndIf
x + 1
Aufgabe1(*Buffer, iRead, x)
Aufgabe2(*Buffer, iRead, x)
Aufgabe3(*Buffer, iRead, x)
Debug "============================" + #CRLF$
If iRead < #Buffersize : Break :EndIf
Wend
CloseFile(0)
EndIf
FreeMemory(*Buffer)
EndIf
Wie mach ich das mit mehreren Threads anstatt normalen Procedere-aufrufen.
Ich will ja kein CreateThread-Wait-Thread für jeden Block, das wäre wohl nicht sehr effizient.