Zitat:
Im Prinzip ja, aber der
Indy TIdTCPServer kapselt den Low-level Teil dieses Vorgehens bereits
Ich kann die Befehle + Daten in eine threadsichere Queue packen und dann versenden.
Ändert das überhaupt was?
Delphi-Quellcode:
procedure Invoke(const ACommandID: Integer; const AData: TBytes);
begin
Queue.Push(TCommand.Create(ACommandID, AData);
EventSend.SetEvent;
end;
Im Thread, der für das Versenden zuständig ist:
Delphi-Quellcode:
procedure TSendThread.Execute;
var
Command : TCommand;
begin
WaitForSingleObject(EventSendHandle, INFINITE);
Command := Queue.Pop;
// Daten versenden
end;