RAII机制

#pragma once
#include <Windows.h>

class raii {
private:
    CRITICAL_SECTION* _crit;
public:
    raii(CRITICAL_SECTION* crit) {
        _crit = crit;
        EnterCriticalSection(_crit);
    }
    raii(const raii&) = delete;
    raii& operator =(const raii&) = delete;
    ~raii() {
        LeaveCriticalSection(_crit);
    }
};

raii其实就是利用了C++变量的生存周期的机制,可以防止使用临界区忘记释放,很方便

posted @ 2020-04-13 10:36  Muzzik  阅读(201)  评论(0)    收藏  举报