Delphi Bluetooth Android TThread e Sleep
18/11/2021
0
Eu utilizo um Timer e uma TThread anônima dentro do evento do Timer,mas não sei se foi implementado corretamente.
O aplicativo utiliza um Horizontal Scroll Box com um Memo e alguns GroupBox.
O Timer esta setado para 3 segundos e sempre que ocorre o evnto Timer,a digitação do Memo ou o Scroll Box ficam ''travando'' e quero eliminar isso.
O sleep dentro do Timer é de 1 segundo e não pode ser menor sob o risco de fragmentação dos dados vindo pelo Bluetooth.
segue o esboço da rotina.
procedure TForm1.Timer1Timer(Sender: TObject); begin TThread.CreateAnonymousThread( procedure begin TThread.Synchronize(TThread.CurrentThread, procedure begin BTMethod.SendData(ID,#$2); Sleep(1000); Application.ProcessMessages; PING:= BTMethod.Receivedata(ID); end); end).Start;
Como poderia executar esta rotina em tempos sem interferir na digitação do Memo e o Scroll Box?
Vtrx
Posts
20/11/2021
Emerson Nascimento
20/11/2021
Vtrx
Comentei //Application.ProcessMessages; e não alterou em nada.
21/11/2021
Vtrx
... Blue_ping = class(TThread) private Lp: Integer; protected procedure Execute ; override; end; ... { Blue_ping } procedure Blue_ping.Execute; begin end; ... procedure TForm1.Timer1Timer(Sender: TObject); begin with Blue_ping.Create do FreeOnterminate:=true; end; ...
Uma observação é que seu utilizar um Application.ProcessMessages depois do Sleep não funciona.
... Sleep(1000); // Application.ProcessMessages; ...
Clique aqui para fazer login e interagir na Comunidade :)