Procedure ThreadStartSendNetworkQueue() Shared lMutexSendNetworkQueue Repeat sSendString.s = "" While (CountList(SendNetworkQueue()) > 0) And (StringByteLength(sSendString.s) < 4096) LockMutex(lMutexSendNetworkQueue) FirstElement(SendNetworkQueue()) If StringByteLength(sSendString.s + SendNetworkQueue()) < 4096 sSendString.s = sSendString.s + SendNetworkQueue() DeleteElement(SendNetworkQueue()) EndIf UnlockMutex(lMutexSendNetworkQueue) Wend If (Len(sSendString.s) > 0) And (sSendString.s <> "") SendNetworkString(conid, sSendString.s) EndIf Delay(10) Until bThreadSendNetworkQueue = #False EndProcedure