Запуск и завершение блокировки в разных методах

Я бы хотел - по непонятным причинам, вы не должны сомневаться - запустить блокировку в одном методе и закончить ее другим. Как-то вроде:

object mutex = new object();

void Main(string[] args)
{
    lock (mutex)
    {
        doThings();
    }
}

Будет иметь такое же поведение, как:

object mutex = new object();

void Main(string[] args)
{
    Foo();
    doThings();
    Bar();
}

void Foo()
{
    startLock(mutex);
}

void Bar()
{
    endlock(mutex);
}

Проблема в том, что ключевое слово lock, конечно же, работает в блочном синтаксисе. Я знаю, что блокировки не предназначены для такого использования, но я более чем открыт для творческих и хакерских решений S / O. :)

7
задан Alex Aza 17 June 2011 в 17:00
поделиться