Bei meiner HID-Komponente setze ich FreeOnTerminate auf False und stoppe den Thread so:
Delphi-Quellcode:
procedure TJvHidDevice.StopThread;
begin
if Assigned(FDataThread) then
begin
FDataThread.Terminate;
FDataThread.WaitFor;
FDataThread.Free;
FDataThread := nil;
end;
end;