Работают ли Monitor.TryEnter и lock () вместе?

Я смотрю на код, который был создан, и он использует TryEnter в одном вызове метода и блокирует в других. Итак, вот так:

private readonly object xmppLock = new object();

void f1() 
{
    if (Monitor.TryEnter(xmppLock))
    {
        try
        {
            // Do stuff
        }
        finally
        {
            Monitor.Exit(xmppLock);
        }
    }
}

void f2()
{
    lock(xmppLock)
    {
        // Do stuff
    }
}

Это нормально?

5
задан Firedragon 21 November 2011 в 10:41
поделиться