Lock es una palabra clave de C#, pero se emula de esta manera, tal como lo he hecho para el proyecto MUTIS que es un port de dotLucene (C#) a Delphi:
http://svn.sourceforge.net/viewvc/mu...as?view=markup
Mira la clase TThreadLock. Tambien la clase TThreadClass te puede ser util.
Como se usa? Asi:
Código Delphi
[-]
TSupportClass.TThreadLock.LockObject(INSTANCIA OBJETO A BLOQUEAR);
try
..codigo
finally
TSupportClass.TThreadLock.ExitLock(INSTANCIA OBJETO A BLOQUEAR);
end;
Nota que no necesitas instanciar la clase de bloqueo porque usa metodos de clases, como si fueran funciones.
La razon de usar una clase de utileria es facilitar el porteo de codigo. Si no te interesa, una forma mas directa:
Código Delphi
[-]
Monitor.Enter(ObjectToLock);
try
..codigo
finally
Monitor.Exit(LockedObject);
end;