Duvida sobre o método Synchronize

24/09/2004

Bom dia Amigos....
Gostaria de tirar uma pequena duvida....Toda vez que utilizo thread
fico com duvida em usar ow naum o método Synchronize ....
Gostaria que alguém podesse me explicar melhor sobre esse método,pois
nunca sei se devo usar...


Alexandresbo2

Respostas

24/09/2004

Emerson

Quando usamos objetos da VCL e da CLX em uma aplicação [b:b82582859c]multi-thread[/b:b82582859c], não temos garantia de que os métodos e propriedades desses objetos serão acessados apenas por uma thread de cada vez, o código da aplicação é que deve garantir isso. Esses métodos e propriedades podem executar ações sobre a memória a qual não está protegida da ação de outras threads.

Se você acessa os métodos e propriedades dos objetos a partir de uma
única thread você não precisa se preocupar com erros causados por acesso simultâneo, como valores lidos incorretamente ou violação de acesso.
Para fazer com que um método de outra thread use a thread principal para
executar uma ação, você deve utilizar o método Synchronize.

Synchronize causa uma chamada específica ao método passado como parâmetro utilizando a thread principal, evitando conflitos entre as threads.
Synchronize espera a thread principal entrar na mensagem de loop e então executa o método passado como parâmetro.

Evite, na medida do possível, o uso de Synchronize. Isso deverá aumentar a performance da sua aplicação, pois muitas vezes você não precisa esperar a thread principal entrar na mensagem de loop para executar o método de outra thread.


Responder Citar