Ok werde ich mal versuchen umzusetzen. Danke euch
[Edit]
Folgende
kleine Änderung hat die Schnelligkeit des Threads wieder zu 100% hergestellt (orientiert an dem Lösungsvorschlag von hugo1990):
Delphi-Quellcode:
// bUpdateDataForm1 ist jetzt eine private-Variable des TThreads
procedure TControlCardControlThread.Execute;
var c, iIndex: integer;
begin
for iIndex := 1 to 5 do (Form3.findcomponent('CheckBox' + inttostr(iIndex+8)) as TCheckBox).Checked:= fabDigChannelSignals[iIndex];
repeat
c := GetTickCount;
bUpdateDataForm1 := ComportSearch(FsLComport); // <-- Zeile aus der UpdateForm3-Procedure entfernt und hier wieder eingefügt
Synchronize(UpdateForm3);
c := {interval}50 - (GetTickCount - c);
if c > 0 then Sleep(c);
until Terminated;
if assigned(FsLComport) then FsLComport.Free;
end;
[/Edit]
2. Account Sero