Показать сообщение отдельно
  #1  
Старый 21.04.2020, 13:22
rodionov_uv rodionov_uv вне форума
Прохожий
 
Регистрация: 23.01.2017
Сообщения: 9
Версия Delphi: Delphi7
Репутация: 10
По умолчанию Зависает программа

Есть некий код, при выполнении которого программа зависает часа на два, пока не выполнится цикл. Знаю что можно этот цикл запихнуть в отдельный поток, а как это сделать не знаю, с потоками никогда не работал. Подскажите пожалуйста как это лучше сделать. Заранее спасибо.

Код:
procedure TMyForm.PuskButClick(Sender: TObject);
var
i, j, k: Integer;
s, str, sum, xOut, xOut1, StrAdr: String;
x: Byte;
pop: array of Byte;
WritteBuffer: array[1..19] of Byte;
ReadBuffer: array[1..21] of Byte;
BytesWritten, BytesRead: DWORD;
begin
  if PortConnect = True then
  if InitModem = True then
  begin
    for i := 1 to 4094 do
    begin
      .................................................................       
     //здесь происходит преобразование посылки в СОМ порт
      .................................................................
     
      WriteFile(Port, WritteBuffer[1], Length(WritteBuffer), BytesWritten, nil);
      ReadFile(Port, ReadBuffer, SizeOf(ReadBuffer), BytesRead, nil);

      .................................................................       
     //здесь происходит преобразование ответа из СОМ порта
      .................................................................

    end;
end;
Ответить с цитированием