C # Jak wykryć obiekt jest już zablokowany

Jak mogę wykryć, czy obiekt jest zablokowany, czy nie?

Monitor.TryEnter (jak opisano wCzy istnieje sposób na wykrycie, czy obiekt jest zablokowany?) nie działa dla mnie, ponieważ blokuje obiekt, jeśli nie jest zablokowany.

I tylko chcę sprawdzić, czy jest zablokowany i gdzieś w moim kodzie użyjęMonitor klasa, aby zablokować obiekt.

Wiem, że możliwe jest użycie na przykład pola logicznego (na przykładprivate bool ObjectIsLocked) ale co wykryć za pomocą samego obiektu-zamka.

Poniższy przykładowy kod pokazuje, co chcę zrobić:

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