2011-12-07 16 views
8

Cómo crear un TList global Thread Safe?Delphi: ¿Cómo crear un TList global de Thread Safe?

unit Unit1; 
interface 
uses 
    ...; 
type 
    TForm1 = class(TForm) 
    procedure FormCreate(Sender: TObject); 
    end; 

var 
    Form1: TForm1; 
    global_TList: TList; // Not thread safe? 

implementation 

{$R *.dfm} 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
// something 
end; 

end. 

que tienen dos hilos, que pueden escribir en global_TList, pero que yo sepa, no es seguro para subprocesos.

Así cómo hacer que sea seguro?

Delphi 2010, Indy 10, Win7

+0

relacionado: http://stackoverflow.com/questions/302583/how-can-i-implement-a-thread-safe-list-wrapper-in-delphi –

+0

Ver [Ayuda de Delphi] (http: // docwiki .embarcadero.com/CodeExamples/XE2/en/TThreadList_ (Delphi)) para ver un ejemplo de cómo trabajar con TThreadList. –

Respuesta

19

Uso TThreadList. Problema resuelto.

+0

¿Puedo usar TThreadList en el hilo? – waza123

+1

Para eso se creó TThreadList. TThreadList no es una lista de hilos, es un TList que es seguro de usar desde múltiples hilos al mismo tiempo. – dthorpe

+0

¡Gracias! Es difícil que sea un casillero ... Pero no hay una cuenta de propiedades, ¿cómo contar? – waza123