Fórum TThread e Sleep #243892
21/07/2004
0
Por exemplo, neste código:
procedure TMyThread.Execute; begin While not Terminated and Socket.Connected do begin if Socket.ReceiveLength > 0 then ProcesseComando; Sleep(1); end; end;
Existiria outro comando sem ser Sleep e sem ´travar´ as outras threads ?
Obs: Application.ProcessMessages deixa a cpu em 100¬ de uso.
Persist
Curtir tópico
+ 0Posts
21/07/2004
Beppe
Gostei + 0
21/07/2004
Persist
Não há problema nenhum em utilizar Sleep, é que fica sempre em loop contínuo do While.
Pensei no Application.HandleMessage, mas mesmo vindo a informação pelo Socket p/ processar o comando, ele fica travado.
Gostei + 0
21/07/2004
Beppe
Gostei + 0
21/07/2004
Persist
Daí quando o cliente solicita alguma coisa, o servidor processa e envia o resultado. Então abro uma thread no servidor quando o cliente se conecta, mas não queria que ficasse sempre em looping e sim que ela ficasse latente, ou seja, quando vem a informação, a thread executa.
Antigamente abria e fechava as threads só quando viesse a informação, mas dava muitos erros de violação, então a thread fica sempre no ar.
Muitas vezes o cliente está conectado, sem fazer nada e a thread no servidor fica lá em looping de bobeira.
Gostei + 0
21/07/2004
Beppe
Gostei + 0
21/07/2004
Persist
Pensei que poderia existir algo como o HandleMessage que pára naquela instrução até que chegue alguma mensagem e daí prosseguir o loop.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)