Das ist nicht im Thread.
Delphi-Quellcode:
constructor TMyComThread.Create(sEinst: String);
begin
FComPort := TApdComPort.Create(nil);
FComPort.OnTriggerAvail := ComPortTriggerAvail;
end;
destructor TMyComThread.Destroy;
begin
FComPort.Open := False;
FComPort.Free;
FCommandList.Free;
inherited;
end;
Aber
FComPort.Open := False;
und .PutString nicht.
-> NICHT thread-save
Der Zugriff auf FCommandList ist auch NICHT thread-save.
Und wo ist im Contructor das Inherited, bzw.
inherited Create(False); // oder True
?
Vielen solcher Komponenten arbeien selbst mit einem Thread und synchronisieren dann die Events meistens in den Hauptthread. (aber nicht immer)
Prüfen wo ComPortTriggerAvail ausgeführt wird.