TryEnterCriticalSection

【勇芳软件工作室】汉化HomePreviousNext

[New - Windows NT]

TryEnterCriticalSection功能尝试在不阻止的情况下输入关键部分。如果呼叫成功,呼叫线程将获得关键部分的所有权。

BOOL TryEnterCriticalSection(

LPCRITICAL_SECTION 【lpCriticalSection】//指向关键部分对象的指针
); 

参数

【lpCriticalSection】

指定临界区对象。

返回值

如果关键部分成功输入或当前线程已经拥有关键部分,则返回值不为零。

如果另一个线程已经拥有关键部分,则返回值为零。

备注

单个进程的线程可以使用关键部分对象进行互斥同步。该过程负责分配关键部分对象使用的内存,该对象可以通过声明CRITICAL_SECTION类型的变量来执行。在使用关键部分之前,进程的一些线程必须调用InitializeCriticalSection函数来初始化对象。

为了实现共享资源的互斥使用,每个线程在执行任何使用受保护资源的代码段之前调用EnterCriticalSectionTryEnterCriticalSection函数来请求所有关键部分的所有权。不同的是,TryEnterCriticalSection立即返回,无论它是否获得了关键部分的所有权,而EnterCriticalSection阻塞,直到线程可以拥有关键部分的所有权。执行受保护的代码后,该线程使用LeaveCriticalSection函数来放弃所有权,从而使另一个线程成为所有者,并访问受保护的资源。每次进入临界区时,线程必须调用一次LeaveCriticalSection.

进程的任何线程可以使用DeleteCriticalSection函数来释放在临界区对象初始化时分配的系统资源。调用此函数后,临界区对象不能再用于同步。

也可以看看

DeleteCriticalSection, EnterCriticalSection, InitializeCriticalSection, LeaveCriticalSection