JHJ_BABY

导航

TryEnterCriticalSection___Delphi

VOID EnterCriticalSection:非阻塞函数。将当前线程对指定临界区的引用计数减1;在使用计数变为零时,另一等待此临界区的一个线程将被唤醒。

BOOL TryEnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection );
从函数声明便可看出,EnterCriticalSection函数的返回值为VOID,而这里为BOOL。

可见对于TryEnterCriticalSection的调用,需要我们判断其返回值。

在调用TryEnterCriticalSection时,如果指定的临界区没有被任何线程(或还没有被任何调用线程)拥有,该函数将临界区的访问权给予调用的线程,并返回TRUE;

不过,如果临界区已经被另一个线程拥有,它立刻返回FALSE值。

TryEnterCriticalSection和EnterCriticalSection之间的最大区别在于TryEnterCriticalSection从来不挂起线程。

posted on 2014-03-10 14:19  JHJ_BABY  阅读(1119)  评论(0编辑  收藏  举报