PDA

Ver la Versión Completa : controlar acceso a un objeto desde diferentes threads


derteo
07-02-2006, 13:16:20
Me gustaría saber si se puede hacer lo siguiente.
Tengo un objeto TQueue en el porgrama principal. Lanzo dos hilos desde el programa principal, uno de ellos añadirá objetos a la cola y el otro los sacará. Me gustaría controlar el acceso al objeto TQueue de tal manera que cuando uno de los hilos está usando la cola, el otro se quede a la espera de que la cola esté libre.

seoane
07-02-2006, 18:42:01
Puedes usar TCriticalSection para esto.


uses SyncObjs;
.
.
.

with TCriticalSection.Create do
try
Acquire;
// Lo que pongas aqui se ejecutara solo, los demas thread se
// detendran y esperan a que termine esta seccion para continuar
Release;
finally
Free;
end;

seoane
07-02-2006, 19:16:36
Pensandolo mejor creo que bastaria con usar el metodo Synchronize del Thread. Son metodos similares, usa el que mas te guste.