Источник ошибок
Это не Visual Studio и не ошибка, связанная с Windows. На самом деле, ошибка в вашей клавиатуре! Сообщается, что многие клавиатуры от разных производителей глючат.
проблема
Если вы нажмете Ctrl+ Breakи отпустите Ctrlсначала, то Break застрянет на глючной клавиатуре. Если вы когда-нибудь нажали Ctrl+ Break«неправильный» путь, у вас возникнет проблема с прерыванием поиска.
подробности
Согласно спецификации кода сканирования, Breakи Ctrl+ Breakявляются специальными. Они посылают «сделать» (нажать) И «сломать» (отпустить) коды сканирования в момент нажатия Break. Они ничего не посылают, когда тебя отпускают Break. Глючная клавиатура отправит следующую последовательность:
- Ctrl "сделать" код сканирования
- Ctrl+Break "сделать" код сканирования
- Ctrl "сломать" код сканирования
- Pause "сломать" код сканирования
То есть Ctrl+ Breakникогда не выпускается, а вместо этогоPause освобождается.
репродукция
Например, вы можете использовать старый добрый Spy ++ из инструментов Visual Studio. Прикрепите его к чему-либо, например, к блокноту Windows, и следите за сообщениями (я предлагаю выбирать только сообщения с клавиатуры). Нажмите Ctrl+ Break, отпуская Ctrlсначала. Проверьте вывод из Spy ++. Вы увидите последовательность, которую я показал в разделе «Детали».
Я пробовал две разные клавиатуры на одном компьютере. Logitech K120 имеет ошибку, в то время как некоторые другие клавиатуры Mitsumi ведут себя в соответствии со спецификациями и не имеют ошибки.
Если вы подумаете об этом, легко понять, что для правильного поведения требуется особая обработка, а поведение с ошибками наивно. Вот почему много разных клавиатур могут глючить.
Решение
Замени свою клавиатуру :)
Временное решение
Вам просто нужно нажать Ctrl+ Break, обращая внимание на освобождение в Breakпервую очередь. Неважно, какое приложение активно.