Locking/Unlocking 功能与 CRITICAL_SECTION

Locking/Unlocking functions with CRITICAL_SECTION

所以,当我使用 "EnterCriticalSection" & "LeaveCriticalSection" 时,我抛出了一个异常,这是我当前的设置:

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

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

_cs 是在我的 class "printer" 中创建的 CRITICAL_SECTION 对象,如下所示:

class printer {
private:
    static CRITICAL_SECTION _cs;

当我调用 "Lock" 时它抛出异常,我不太确定为什么,我已经尝试阅读 MSDN 但我不是 100% 理解它。

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

我相信你需要添加

InitializeCriticalSection(&_cs);

如果失败,您可以尝试将 CRITICAL_SECTION _cs 更改为可变的而不是静态的,但那是一种盲目尝试。