Я использую рабочий поток для чтения данных с TIdTCPClient
, как описано в других статьях.Поток получает данные с помощью этой команды:
FClient.IOHandler.ReadBytes (FData,-1,False);
, где FClient
- это TIdTCPClient
, а FData
- TIdBytes
.
Это целое потока чтения * 1011.* method:
procedure TReadingThread.Execute;
begin
inherited;
if not assigned(FClient.IOHandler) then exit;
while not terminated do
begin
if FClient.IOHandler <> nil then
begin
try
FClient.IOHandler.ReadBytes (FData,-1,False);
Synchronize(DataReceived);
SetLength (FData,0);
except
end;
end;
end;
end;
Если я не использую SetLength (FData,0)
, то следующие входящие данные добавляются к FData
.Я никогда не читал об этом в других обсуждениях.
Я использую Delphi RAD Studio 10.3.
Известно ли, что FData
должен быть установлен в 0, или я делаю что-то не так?