MFC EnterCriticalSection 卡死问题

来源:互联网 发布:淘宝销售额统计 编辑:程序博客网 时间:2024/05/18 00:52

使用EnterCriticalSection时卡死

问题产生原因:

如下代码,在已经进入临界区时,再次进入其他临界区,会导致软件卡死

EnterCriticalSection(&cs0);//进入临界区
EnterCriticalSection(&cs1);//进入临界区
LeaveCriticalSection(&cs1);//离开临界区
LeaveCriticalSection(&cs0);//离开临界区
解决问题:

如果需要再次进入其他临界区,则先退出已进入的临界

EnterCriticalSection(&cs0);//进入临界区
LeaveCriticalSection(&cs0);//离开临界区
EnterCriticalSection(&cs1);//进入临界区
LeaveCriticalSection(&cs1);//离开临界区
EnterCriticalSection(&cs0);//进入临界区
LeaveCriticalSection(&cs0);//离开临界区

原创粉丝点击