2011-12-07 8 views
8

スレッドセーフグローバルTListを作成するには?Delphi:スレッドセーフなグローバル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. 

私はglobal_TListに書き込むことができる2つのスレッドを持っていますが、わかっているようにスレッドセーフではありません。

どのように安全にするには?

デルファイ2010年、インディ10、Win7の

+0

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

+0

[Delphiヘルプ](http:// docwiki)を参照してください。 .embarcadero.com/CodeExamples/XE2/ja/TThreadList_(Delphi))を参照してください。 –

答えて

19

使用TThreadList。問題が解決しました。

+0

TThreadListをスレッドで使用できますか? – waza123

+1

それはTThreadListのために作られたものです。 TThreadListはスレッドのリストではなく、複数のスレッドから同時に安全に使用できるTListです。 – dthorpe

+0

ありがとうございます!私はそれはいくつかのロッカーです。タフですが、プロパティーカウントは何ですか? – waza123

関連する問題