dephi线程的同步,最简单的就是临界区。
临界区的意思就是,一次只能由一个线程执行的代码。
在使用临界区之前,必须使用InitializeCriticalSection( )过程来初始化它。
其声明如下:
procedure InitializeCriticalSection(var lpCriticalSection);stdcall;
lpCriticalSection参数是一个TRTLCriticalSection类型的记录,并且是变参。至于TRTLCriticalSection
是如何定义的,这并不重要,因为很少需要查看这个记录中的具体内容。只需要在lpCriticalSection中传
递未初始化的记录,InitializeCriticalSection()过程就会填充这个记录.
在记录被填充后,我们就可以开始创建临界区了。这时我们需要用 E n t e r C r i t i c a l S e c t i o n ( )和L e a v e C r i t i c a l S e c t i o n ( )来封装代码块.
当你不需要T RT L C r i t i c a l S e c t i o n记录时,应当调用D e l e t e C r i t i c a l S e c t i o n ( )过程,下面是它的声明:
procedure DeleteCriticalSection(var lpCriticalSection: TRT L C r i t i c a l S e c t i o n ) ; s t d c a l l ;
列子:
unit CriticaSect