Отладка Silverlight в Visual Studio 2010 зависает при использовании клавиатуры - PullRequest
9 голосов
/ 16 ноября 2011

Сначала я хотел бы ответить на вопросы "подожди минутку".

  • Да, я прочитал все темы с похожими заголовками и темами в SO и не только.
  • Да, я использую самую последнюю версию SP1 и все возможные исправления, которые могут быть связаны с этой проблемой.

Итак, со спецификой, вот моя проблема:

Когда я отлаживаю приложения Silverlight и он достигает точки останова, все работает нормально, пока я использую мышь. Я могу продолжать, шагать, останавливать отладку, отключать и включать точки останова, все в порядке - до тех пор, пока я делаю это с помощью мыши.

Но когда я использую клавиатуру, Visual Studio зависает на несколько секунд, иногда более минуты. Это любое использование клавиатуры. Но через некоторое время он начинает работать нормально, пока не закончится сеанс отладки. Но в следующем сеансе отладки (независимо от того, использую ли я тот же экземпляр Casini или нет), он будет делать то же самое.

Когда я говорю о любом использовании клавиатуры, я имею в виду это. F5 (Продолжить), Shift-F5 (Остановить отладку), F10 (Перешагнуть), а также набирать текст в окне Immediate или даже нажимать клавишу ALT, чтобы выделить меню.

Например, если я пытаюсь что-то набрать в окне Immediate, оно останавливается примерно на 15 секунд, а затем показывает первую клавишу и повторяет шаблон примерно 5 раз, пока не отпустится, и все будет хорошо.

Когда я говорю «зависает», я говорю не о Visual Studio, а о зависании всей операционной системы, за исключением моей способности перемещать мышь. Несмотря на это, курсор мыши остается тем же, каким он был, когда зависал, независимо от того, с какой программой он закончился, например с селектором текста.

Это происходит только с Silverlight, и не имеет значения, какую версию я использую.

Вот что я бегу:

  • Windows 7 Профессиональная 64-разрядная, все последние обновления включены, 12 ГБ ОЗУ и 1,5 ТБ HD.
  • Visual Studio 2010 Ultimate со всеми последними обновлениями.

Все программное обеспечение является законным, и я уже пытался удалить и / или отключить практически все, что можно удалить или отключить, включая расширения. Я использовал Process Explorer от Sysinternals, чтобы убить или остановить все, что я могу. Я также попробовал это на очень простом приложении Silverlight без единой строчки кода, которая не имеет доступа к чему-либо.

РЕДАКТИРОВАТЬ: Забыл упомянуть, что у меня также нет загрузки символов помимо «Просто мой код», как обычно, и я попробовал все настройки отладки, которые я могу придумать. И Intellitrace также отключен (поскольку у меня есть Ultimate), но это тоже не имеет значения.

ОБНОВЛЕНИЕ (11/18): Становится все более и более странным. Я определил, что временное замораживание происходит не только тогда, когда в Visual Studio есть фокус. Когда VS (во время очень простого приложения Silverlight) переходит в режим отладки, любой доступ к клавиатуре ВСЕ вызывает тот же эффект. ТАК, кажется, что это должно (каким-то образом) быть связано (по крайней мере частично) с моей установкой Windows, вопреки моему утверждению в комментариях, но я не могу понять, как. И если другие программы делают что-то, когда оно зависает, задержка увеличивается (что имеет определенный смысл с симптомами). Я все еще в полной растерянности.

У кого-нибудь есть идеи или вы видели это раньше? Это действительно расстраивает.

Ответы [ 2 ]

16 голосов
/ 18 ноября 2011

Я решил проблему.

Оказалось, что это панель инструментов LastPass.Это очень удобная вещь, и я использовал ее годами без проблем.Да, да, панели инструментов злые, я понимаю.:)

Отключение в IE полностью устранило проблему.Я все еще могу использовать его в FF (который в любом случае является моим основным браузером, за исключением работы, для которой я использую IE), и все работает нормально.

Даже если это так, мне кажется странным, что панель инструментов будет иметь эффект, только когдаSL отлаживает.У меня не было проблем с отладкой ASP.Net, и у меня не было проблем, когда приложение SL фактически работало, только когда я достиг точки останова И нажал клавишу в течение первых 15 секунд или около того.

В любом случае, проблема решена и спасибо за ваши предложения.

1 голос
/ 23 декабря 2011

Попробуйте изменить параметр реестра LowLevelHooksTimeout с 5000 на что-то низкое, например, 300. Может быть на

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\Control Panel\Desktop 

или

HKEY_CURRENT_USER\Control Panel\Desktop

(первый параметр ключа политики, похоже, глобально переопределяет пользовательский параметр).

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