У меня есть проблема, когда мне нужно вызвать поточно-безопасный метод (то есть тот, который использует внутреннюю блокировку), если условие истинно. Проверяемое мной условие считывает переменную, разделяемую многими потоками (_count), поэтому мне нужно блокировать ее при чтении, чтобы избежать нечетких чтений. Не приведет ли это к блокировке вложенного монитора (взаимоблокировке), так как я блокирую уже потокобезопасный вызов метода?
Пример ниже:
lock (this)
{
if (_count <= 10)
{
_someObj.DoSomethingThreadSafe(); //this method has its only locking internally
}
}
Как бы это исправить?