Abortar um Thread

Delphi

11/07/2005

Tenho uma thread q faz calculos em um clientdataset em segundo plano.
Sempre que uma nova thread é disparada a anterior deve ser abortada pois o resultado do calculo ja nao ira mais servir.

Mas as vezes da uns erros muito loucos, o programa fecha sozinho, etc...
Detectei o problema como sendo o seguinte:
As vezes o projeto nao consegue abortar uma thread.
Ai uma é criada em cima da outra e os erros comecam.

Alguem sabe como abortar uma thread de maneira silenciosa e efetiva?


Ivanh

Ivanh

Curtidas 0

Respostas

Massuda

Massuda

11/07/2005

Você está usando TThread.Terminate para parar a thread? Neste caso, sua thread está testando a flag TThread.Terminated?

No seu caso, como (pelo que entendi) está criando uma nova thread cada vez que for necessário, é interessante trabalhar com TThread.FreeOnTerminate = True, assim a thread é automaticamente destruída ao terminar.


GOSTEI 0
Ivanh

Ivanh

11/07/2005

Fiz isso tudo!
Aparentemente funciona!
Mas fazendo um ´hardtest´, os erros comecam a aparecer!


GOSTEI 0
Massuda

Massuda

11/07/2005

Seria interessante se você postasse a parte do código relacionada com a thread.

Outra possibilidade, mas eu não tenho conhecimento sobre isso, é que o CDS esteja dando problemas ao ser usando de modo multithread... eu não tenho idéia se um CDS suporta ser manipulado em diferentes threads.


GOSTEI 0
POSTAR