Изучая какой-то старый код, мы обнаружили следующий код:
lock (System.Threading.Thread.CurrentThread) // Critical Section - no interrupting.
Наша первая реакция была "WTF" - код блокируется в текущем потоке. , который представляет собой отдельный объект в каждом потоке (за исключением случая рекурсии, которую было бы просто глупо блокировать). Это не Похоже, эта блокировка служит какой-либо цели. Нам было интересно, действительно ли это был WTF или он действительно служит какой-то цели.