none
C# 8 В чём разница этих случаев применения lock и Monitor?

    Вопрос

  • Доброе утро!

    Подскажите, пожалуйста, чем отличаются эти два примера кода, и в каких случаях можно обойтись без вызова Exit? В интернете комментарии весьма туманны.

    lock(obj)
        list.Operation();

    Monitor.Enter(obj);
    list.Operation();
    Monitor.Exit(obj); // зачем?


Ответы

  • Второй вариант не освободит объект если произойдет исключение.

    Затем что если объект не освободить, то никто больше не сможет его снова захватить. Эта как книга в библиотеке - если ее не сдать обратно то все, никто больше ее не прочитает.



    This posting is provided "AS IS" with no warranties, and confers no rights.

    Модератор

Все ответы