Global NewList SendNetworkQueue.s() Global bThreadSendNetworkQueue.b = #True Define lMutexSendNetworkQueue.l = CreateMutex() Procedure ThreadStartSendNetworkQueue() Shared lMutexSendNetworkQueue Repeat While CountList(SendNetworkQueue()) Delay(2000) LockMutex(lMutexSendNetworkQueue) FirstElement(SendNetworkQueue()) If Len(SendNetworkQueue()) > 0 Debug "Out: " + SendNetworkQueue() EndIf DeleteElement(SendNetworkQueue()) UnlockMutex(lMutexSendNetworkQueue) Delay(2000) Wend Until bThreadSendNetworkQueue = #False EndProcedure Procedure ThreadEndSendNetworkQueue() bThreadSendNetworkQueue = #False EndProcedure Procedure ThreadAddNetworkString(sString.s) Shared lMutexSendNetworkQueue LockMutex(lMutexSendNetworkQueue) AddElement(SendNetworkQueue()) SendNetworkQueue() = sString UnlockMutex(lMutexSendNetworkQueue) EndProcedure CreateThread(@ThreadStartSendNetworkQueue(), #Null) Debug "Belade Stack" Repeat Define sString.s = Str(Random(1000000)) ThreadAddNetworkString(sString) Debug "Add: " + sString Delay(100) Until Random(8) = 1 Debug "Stack Beladen Beendet" Repeat : ForEver