Duvida sobre Thread

Delphi

28/12/2007

Prezados Amigos...
Vejam se podem me ajudar...

Tenho uma thread que realiza um processo de backup e envio de alguns arquivos ao nosso servidor...

Então aciono ela na entrada, meio e saida do sistema.
No show do form principal utilizo a criação da thread em cima da variavel ´Entrada´, no meio do sistema crio em cima da var ´Meio´ na saida na var ´Saida´

Entrada := TMinhaThread.Create(); //No show do form principal
Meio := TMinhaThread.Create(); //Em alguns processos internos durante a execução do sistema
Saida := TMinhaThread.Create(); //No close do form principal

Como na thread utilizo no metodo execute praticamente o mesmo processo para as chamadas, tenho loops em tabelas, validações de dados etc...

Aí eu pergunto...
Se o usuario entrar no sistema e no show a thread ´Entrada´ for criada... e ainda durante a execução desta, o usuario realizar um processo no sistema que acione a thread ´Meio´... Os dados podem embolar?

Tipo uma confudir os dados com a outra..
Ou o fato de cada uma estar em cima de uma variavel de controle diferente.. o sistema trata como processos em separado?

Conto com vcs...
Um grande abraço...

(Obs: Quando fecho a aplicação principal, qualquer thread que eu tenha em execução tb é morta no sistema, ou elas continuam executando independente da principal)


Pablo_lima

Pablo_lima

Curtidas 0

Respostas

Cesar Romero

Cesar Romero

28/12/2007

Minhas dicas

1) Pra cada Thread que faz conexão com banco de dados, vc tera de ter uma conection separada exclusivamente para ela.

2) cada vez que vc precisar atualizar a tela com os dados recebidos, tera de umas o método syncronize, para que a Thread principal pare e possa receber estes dados

3) Se precisar acessar variaveis globais de qualquer tipo, use CriticalSection para prevenir problemas que causem corrupção de dados ou aplicaçao congele.

4) Se vc criou a sua TMyThread, vc tera de destruir, a nao ser que use o FreeOnTerminate = True.

[]s


Cesar Romero


GOSTEI 0
POSTAR