Есть ли простой способ проверить, у кого есть блокировка чтения или записи в Visual Studio 2010? - PullRequest
0 голосов
/ 05 августа 2011

Ошибка AcquireReaderLock, и я подозреваю, что это потому, что кто-то еще удерживает блокировку бесконечно. Предоставляет ли Visual Studio 2010 простой способ проверки, кто имеет блокировку чтения или записи? Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 августа 2011

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

0 голосов
/ 05 августа 2011

Нет, не так легко, по крайней мере.

Вы можете использовать что-то вроде JetBrains dotTrace, которое позволит вам войти в недра стека вызовов, чтобы выяснить, где что-то задерживается.

http://www.jetbrains.com/profiler/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...