哪位高手能告诉小弟我TThreadList的属性及用法

谁能告诉我TThreadList的属性及用法。
var 
G_NotReadBuf : TThreadList;

function GetModemDataStruct():pointer;
var
  Mylist :TList;
begin
  Result := nil;
  Try
  Mylist := G_NotReadBuf.LockList;
  if Mylist.Count = 0 then
  begin
  G_NotReadBuf.UnlockList;
  exit;
  end;
  result := Mylist.Items[0];
  Mylist.Remove(result);
  except
  on aaa : Exception do Errorstr:=pchar('GetModemDataStruct');
  end;
  G_NotReadBuf.UnlockList;
end;
 
请问这个函数什么意思。。。。谁能帮帮我?、、、、、Mylist := G_NotReadBuf.LockList;这句又是什么意思啊。?

------解决方案--------------------
Mylist := G_NotReadBuf.LockList; 取得(安全)线程列表
------解决方案--------------------
探讨
result := Mylist.Items[0]; 这句又什么意思啊?

------解决方案--------------------
TThreadList只是一个收集器,收集一些会导致线程安全的控件、对象的容器,
可以这么理解。使用时,只有两个重要的方法:
private
FLock: TThreadList;
...
end;


procedure SomeProc;
begin
FList.LockList;
try
这里进行线程对FList里面对象的访问,这里是线程安全。
FList通过Add, Remove方法进行对象的Add, Remove操作
finally
FList.UnlockList;
end;
end;

注意:
SomeProc是全局函数,它是供线程访问的函数,而不是线程里面的函数/方法

如果你看VCL源码,你会发现TThreadList其实就是TList and TCriticalSection的集成操作
------解决方案--------------------
locklist

unlocklist

这是一对,一个是锁住,一个是释放锁