Fórum Duvida sobre Thread #351187
28/12/2007
0
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)
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
Curtir tópico
+ 0
Responder
Posts
02/01/2008
Cesar Romero
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
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)