Ну, это не может быть объяснением.Другой поток, удерживающий блокировку считывателя, не блокирует вам получение блокировки считывателя.Чтения могут быть разделены.Единственное возможное объяснение состоит в том, что поток удерживает блокировку записи «один-единственный».Это видно в отладчике, частное поле _dwWriterID содержит ManagedID потока, которому он принадлежит.Сопоставьте его с темой, которую вы видите в окне Debug + Windows + Threads.VS2010 отображает управляемый идентификатор, более ранние версии - нет.Дважды щелкните по нему и переключитесь в окно стека вызовов, чтобы увидеть, что делает этот поток.