2011-12-07 23 views
8

Bir iş parçacığı güvenli nasıl oluşturulur?Delphi: Nasıl bir iş parçacığı güvenli genel TList oluşturmak için?

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. 

Ben global_TList yazabilir iki konuları, var, ama bildiğimiz gibi, bu iş parçacığı güvenli değil.

Peki nasıl güvenli hale getirilir?

Delphi 2010 Indy 10, Win7

+0

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

+0

Bkz. [Delphi Yardımı] (http: // docwiki .embarcadero.com/CodeExamples/XE2/tr/TThreadList_ (Delphi)) örnek olarak bir TThreadList ile nasıl çalışılır. –

cevap

19

Kullanım TThreadList. Sorun çözüldü.

+0

TThreadList'i iş parçacığında kullanabilir miyim? – waza123

+1

TThreadList bunun için oluşturuldu. TThreadList bir iş parçacığı listesi değil, aynı anda birden çok iş parçacığı kullanmak için güvenli bir TList. – dthorpe

+0

Teşekkürler! Ben sağlam bir dolap var .. Ama hiçbir propertie yoktur. – waza123

İlgili konular