2011-12-07 32 views
8

Làm thế nào để tạo một Chủ đề an toàn TList toàn cầu?Delphi: Làm thế nào để tạo ra một chủ đề an toàn toàn cầu TList?

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. 

Tôi có hai chủ đề, có thể ghi vào global_TList, nhưng như tôi biết, nó không phải là chủ đề an toàn.

Vậy làm cách nào để an toàn?

Delphi 2010, Indy 10, Win7

+0

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

+0

Xem [Trợ giúp Delphi] (http: // docwiki .embarcadero.com/CodeExamples/XE2/vi/TThreadList_ (Delphi)) cho một ví dụ về cách làm việc với một TThreadList. –

Trả lời

19

Sử dụng TThreadList. Đã giải quyết được sự cố.

+0

Tôi có thể sử dụng TThreadList trong chuỗi không? – waza123

+1

Đó là những gì TThreadList được xây dựng cho. TThreadList không phải là một danh sách các chủ đề, nó là một TList là an toàn để sử dụng từ nhiều chủ đề cùng một lúc. – dthorpe

+0

Cảm ơn !! Tôi khó khăn đó là một số locker .. Nhưng không có propertie .count, làm thế nào để đếm? – waza123

Các vấn đề liên quan