powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Monitor.Enter (Object, Boolean), или устарело ?
3 сообщений из 3, страница 1 из 1
Monitor.Enter (Object, Boolean), или устарело ?
    #39057241
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

Вопрос. Необходима ли такая конструкция:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
bool acquiredLock = false;

try
{
    Monitor.Enter(lockObject, ref acquiredLock);

    // Code that accesses resources that are protected by the lock.

}
finally
{
    if (acquiredLock)
    {
        Monitor.Exit(lockObject);
    }
}



На МСДН данный пример приведен, но объявлен как Legacy Code Example.
https://technet.microsoft.com/en-us/library/dd289498(v=vs.110).aspx

Кажется, где-то начиная с NET 4.0 данный функционал исправлен, т.е. теперь можно использовать просто lock, который сам разворачивается в приведенный код.

Так ли это ? Как использовать правильней ?
...
Рейтинг: 0 / 0
Monitor.Enter (Object, Boolean), или устарело ?
    #39057313
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotek, в чем суть проблемы то? Если проблемы нет, то используй lock. Лично я ни разу слышал нареканий в его адрес. Если спрашиваешь из любопытства, то конструкция lock еще с .NET 1.0 транслировалась в вызов Montor.Enter(object)/Montor.Exit(object) в блоке try/finally. Метод Monitor.Enter(object, ref bool) был добавлен в .NET 4.0 и одновременно был изменен код который генерирует lock.
...
Рейтинг: 0 / 0
Monitor.Enter (Object, Boolean), или устарело ?
    #39057320
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bazile,

Да ну вот я что-то вспомнил, что там как раз была переделка. И возник просто вопрос - как сейчас правильней писать.
Раз говорите, что "одновременно был изменен код который генерирует lock" - значит можно спокойно использовать простой lock.
Ок.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Monitor.Enter (Object, Boolean), или устарело ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]