被迫:(在C ++ CLI中工作我正在寻找一种方法来进行RAII锁定。我想出的是:
ref class RAIIMonitor
{
RAIIMonitor();
T^ t;
public:
RAIIMonitor(T^ t_)
{
t=t_;
System::Threading::Monitor::Enter(t_);
}
~RAIIMonitor()
{
System::Threading::Monitor::Exit(t);
}
!RAIIMonitor()
{
assert(0); // you are using me wrong
}
};
用法:
//begining of some method in MyRefClass
RAIIMonitor<MyRefClass> monitor(this);
那么这是正确的方法吗,如果没有,有没有办法做到这一点,如果有,有没有办法做得更好?