使用CRITICAL_SECTION锁定/解锁功能

时间:2015-06-11 14:14:37

标签: c++ multithreading critical-section

所以,当我使用" EnterCriticalSection" &安培; " LeaveCriticalSection"我向我抛出一个例外,这是我目前的设置:

void printer::Unlock()
{
    LeaveCriticalSection(&_cs);
}

void printer::Lock()
{
    EnterCriticalSection(&_cs);
}

_cs是在我的班级"打印机"中创建的CRITICAL_SECTION对象。像这样:

class printer {
private:
    static CRITICAL_SECTION _cs;

当我打电话给#34; Lock"抛出异常,我不确定为什么,我已经尝试过阅读MSDN,但我并不完全理解它。

(我不想使用互斥锁...)

1 个答案:

答案 0 :(得分:1)

我相信你需要添加

InitializeCriticalSection(&_cs);

如果失败了,你可以尝试将CRITICAL_SECTION _cs更改为可变而不是静态,但这是在黑暗中拍摄的那种。