CRITICAL_SECTION 本质上来说就是一个互斥锁,用法如下:
1.声明一个CRITICAL_SECTION对象:CRITICAL_SECTION g_cs;一个数组对象:int a[10];
2.初始化临界区:InitializeCriticalSection(&g_cs);
3.在所有需要对数组a[10]进行操作的地方,操作前加入:EnterCriticalSection(&g_cs);操作后加入:LeaveCriticalSection(g_cs);来保证在操作之前,已经问过互斥锁了。
个人理解:
CRITICAL_SECTION对象其实更 倾向于一个平时所用的flag变量的作用,并不是说真的把某些资源锁定住了(因为并没有函数来直接将该对象与某些资源进行直接绑定),而是通过在访问之前手动的进行询问,来造成了该资源被锁定的“假象”而已。