Fórum Delphi Bluetooth Android TThread e Sleep #617179
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
Curtir tópico
+ 0Posts
20/11/2021
Emerson Nascimento
Gostei + 0
20/11/2021
Vtrx
Comentei //Application.ProcessMessages; e não alterou em nada.
Gostei + 0
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;
...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)