У меня есть 3 вопроса, с которыми мне нужна помощь.
-
Каковы правильные объекты/ссылки, которые должны быть переданы как параметр
lock
statement? Я видел много примеров кода, и я заметил, что переданные объекты/ссылки могут быть не связаны с текущим классом или любым другим классом в программе, если модификатор доступаstatic
не является общедоступным? Например:.private Object anyObj = new Object(); lock(anyObj){.....} private static readonly object Locker = new object(); lock(Locker){.....}
Мне это просто не имеет смысла.
-
Я нашел пример кода в MSDN о многопоточности, который также использует выражения
lock
. В образце есть два блокаtry
/catch
сMonitor.Wait()
внутри него. Если я правильно понимаю логику,readerFlag
запретит программе когда-либо вообще вводить блокtry
/catch
.
Код здесь пример 2:
http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx -
Как запустить поток, который работает в фоновом режиме, если активна форма Windows?