C # Como detectar um objeto já está bloqueado

Como posso detectar se um objeto está bloqueado ou não?

Monitor.TryEnter (como descrito emExiste uma maneira de detectar se um objeto está bloqueado?) não funciona para mim porque bloqueia o objeto se ele não estiver bloqueado.

I  quero verificar se está bloqueado e em outro lugar no meu código eu vou usar oMonitor classe para bloquear o objeto.

Eu sei que é possível usar, por exemplo, um campo booleano (por exemploprivate bool ObjectIsLocked), mas o que detectá-lo usando o próprio objeto de bloqueio.

O código de exemplo abaixo mostra o que eu quero fazer:

private static object myLockObject = new object();

private void SampleMethod()
{
    if(myLockObject /*is not locked*/) // First check without locking it
    {
        ...
        // The object will be locked some later in the code
        if(!Monitor.TryEnter(myLockObject)) return;

        try
        {

            ....
        }
        catch(){...}
        finally
        {
            Monitor.Exit(myLockObject);
        }
    }
}

questionAnswers(6)

yourAnswerToTheQuestion