Mam kod, który można wywołać z poziomu lub poza blokadą. Muszę robić rzeczy, gdy jestem w zamku. Sam kod nie ma wiedzy o tym, skąd jest wywoływany. Potrzebuję czegoś takiego:Jak sprawdzić, czy obecny kod jest "wewnątrz" blokady?
lock (MyLock) {
if (INSIDE_LOCK) ...
}
Wiem, że to brzmi dziwnie i źle, ale potrzebuję tego dla problemów ze zgodnością. W przeciwnym razie będę musiał przepisać dużo kodu, co byłoby ryzykowne, ponieważ nie mam żadnych testów.
jakieś wytłumaczenie o 'zamkiem (MyLock) 'będący tylko syntaktycznym cukrem dla' Monitor.Enter (MyLock) '+' try/finally' + 'Monitor.Leave (M yLock) 'może poprawić tę jedną linię odpowiedzi. –