临界区技术包括下面4条API语句: InitializeCriticalSection(CS); //初始化临界区 EnterCriticalSection(CS); //进入临界区 LeaveCriticalSection(CS); //退出临界区 DeleteCriticalSection(CS); //销毁临界区
示例:
uses Windows;
var CS:TRTLCriticalSection;
类中使用,可简化为下面结构:private FLock:TRTLCriticalSection; //声明一个临界区变量 {临界区} procedure Lock; procedure UnLock;
implementation
constructor TMyClass.create;begin inherited create;
{创建一个临界区} InitializeCriticalSection(FLock);end;
destructor TMyClass.Destroy;begin DeleteCriticalSection(FLock); //销毁临界区
inherited;end;
procedure TMyClass.Lock;begin EnterCriticalSection(FLock); //进入临界区end;
procedure TMyClass.UnLock;begin LeaveCriticalSection(FLock); //退出临界区end;
===================================== 以后类中使用临界区,操作可简化为:
Lock; try ...要保护的代码.... ...
... finally UnLock; end;
