Я использую C # в течение последних нескольких лет, и в настоящее время я исправляю ошибки в C ++.В C # я мог бы использовать блокировку для объекта, чтобы сделать мой поток кода безопасным с помощью:
lock(lockObject)
{
// Do some work
}
Это разблокировало бы lockOject, если в // Do some work
было исключение.похоже в C ++?В настоящий момент я могу думать о:
// Code
{
AutoLock lock(lockObject);
// Do some work
}
// More Code
Но мне не нравятся фигурные скобки только для того, чтобы охватить мой AutoLock
.На данный момент я делаю:
AutoLock lock(lockObject);
// Do some work
lock.Unlock();
И разрешение разматывания исключения снимает блокировку, если есть исключение в //Do some work
.
То, что я делаю в данный момент, работает, ноМне интересно, есть ли лучший способ, спасибо.