Origem do bug
Este não é um bug relacionado ao Visual Studio nem ao Windows. De fato, o bug está no seu teclado! Muitos teclados de diferentes fornecedores foram relatados como buggy.
Problema
Se você pressionar Ctrl+ Breake soltar Ctrlprimeiro, o Break ficará preso em um teclado com erros. Se você pressionar Ctrl+ Breako caminho "errado", terá esse problema com a pesquisa sendo interrompida.
Detalhes
De acordo com as especificações do código de verificação, Breake Ctrl+ Breaksão especiais. Eles enviam códigos de verificação "make" (pressione) AND "break" (release) no momento em que você pressiona Break. Eles não enviam nada quando você solta Break. O teclado de buggy enviará a seguinte sequência:
- Ctrl código de verificação "make"
- Ctrl+ Breakcódigo de verificação "make"
- Ctrl código de verificação "break"
- Pause código de verificação "break"
Ou seja, Ctrl+ Breaknunca é liberado, mas Pauseé liberado.
Reprodução
Você pode, por exemplo, usar o bom e velho Spy ++ das ferramentas do Visual Studio. Anexe-o a qualquer coisa, por exemplo, o bloco de notas do Windows e monitore as mensagens (sugiro que você selecione apenas as mensagens do teclado). Pressione Ctrl+ Break, liberandoCtrl primeiro. Verifique a saída do Spy ++. Você verá a sequência mostrada na seção Detalhes.
Eu tentei dois teclados diferentes no mesmo computador. O Logitech K120 possui o erro, enquanto outros teclados Mitsumi se comportam de acordo com as especificações e não possuem o erro.
Se você pensar bem, é fácil entender que o comportamento correto precisa de tratamento especial de casos, enquanto o comportamento de buggy é ingênuo. É por isso que muitos teclados diferentes podem ser de buggy.
Solução
Substitua o seu teclado :)
Gambiarra
Você só precisa pressionar Ctrl+ Break, prestando atenção na liberação Breakprimeiro. Não importa qual aplicativo está ativo.