var
datatarr: array[0..100]of Integer;
l: TRTLCriticalSection;constructor Create;
begin
inherited Create(False);
InitializeCriticalSection(l);
end;destructor Destroy; override;
begin
DeleteCriticalSection(l);
end;procedure execute;
var
i: Integer;
begin
Lock;
for i := 1 to 100 do
Inc(dataarr[i]);
Unlock;
end;procedure Lock;
begin
EnterCriticalSection(l);
end;procedure Unlock;
begin
LeaveCriticalSection(l);
end;
datatarr: array[0..100]of Integer;
l: TRTLCriticalSection;constructor Create;
begin
inherited Create(False);
InitializeCriticalSection(l);
end;destructor Destroy; override;
begin
DeleteCriticalSection(l);
end;procedure execute;
var
i: Integer;
begin
Lock;
for i := 1 to 100 do
Inc(dataarr[i]);
Unlock;
end;procedure Lock;
begin
EnterCriticalSection(l);
end;procedure Unlock;
begin
LeaveCriticalSection(l);
end;
arrData: array[0..1000] of Integer;// 线程函数
function ThreadFunc(Param: Pointer): Integer;
begin
// ... ...
// 象正常的函数调用一样
arrData[i] := 1234;
// ... ...
end;var
dwThreadId: DWORD; // 调用线程函数
BeginThread(Nil, 0, ThreadFunc, Nil, 0, dwThreadId);