Джерело помилок
Це ні Visual Studio, ні помилка, пов’язана з Windows. Насправді помилка у вашій клавіатурі! Повідомлялося, що багато клавіатур різних постачальників баггі.
Проблема
Якщо спочатку натиснути Ctrl+ Breakта відпустити Ctrl, то перерва застрягне на помилковій клавіатурі. Якщо ви коли-небудь натискали 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спочатку. Не має значення, який додаток активний.