Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.312 Beiträge
 
Delphi 12 Athens
 
#3

AW: Zugriff auf RS232 über TApdComPort und Thread

  Alt 7. Feb 2023, 18:13
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.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Feb 2023 um 18:16 Uhr)
  Mit Zitat antworten Zitat