以下示例显示了线程如何初始化,进入和离开关键部分。与互斥体示例一样(参见使用互斥对象),此示例使用尝试 - 最后结构化异常处理语法来确保线程调用LeaveCriticalSection函数以释放其对关键段对象的所有权。
CRITICAL_SECTION GlobalCriticalSection;
//初始化临界区。
InitializeCriticalSection(&GlobalCriticalSection);
//请求关键部分的所有权。
尝试
{
EnterCriticalSection(&GlobalCriticalSection);
//访问共享资源。
}
最后
{
//释放关键部分的所有权。
LeaveCriticalSection(&GlobalCriticalSection);
}