Наиболее вероятной причиной зависания является неявное свойство или .ToString
оценка, которая вызывает тупик в CLR и, следовательно, отладчике.Попробуйте отключить это и повторить сценарий
- Инструменты -> Параметры -> Отладчик
- Снимите флажок «Включить неявную оценку свойств»
Когда отладчик неявно илиявно оценивает функции, которые он делает так в угнанном потоке в CLR.Этот поток не является потоком, в котором вы в данный момент отлаживаете, и все другие потоки приостановлены во время этой операции.Следовательно, если какой-либо из методов ToString
или свойства выполняет операцию, чувствительную к потоку, он может очень легко вызвать взаимоблокировку.
Отладчик эффективно выполняет методы в окне отладчика синхронно из потока пользовательского интерфейса и, следовательно, блокирует Visual Studioтакже.