Я использую _getch()
в одном потоке своей многопоточной консольной программы Windows, созданной с помощью Visual C++. Если я нажму немного быстрее, _getch()
пропустит некоторые вводы. Например, я ввожу строку "hello"
, ошибка _getch()
получает символы 'h'
, 'l'
, 'l'
, 'o'
. Он пропустил 'e'
. Если я нажму немного медленнее, он получит все символы. Всего есть 6 потоков со сторонней библиотекой.
Если я не использую стороннюю библиотеку, есть 3 потока. Все работает нормально.
Так есть ли вероятность того, что сторонний код изменяет атрибут консоли, который приводит к проблеме?
_getch()
находится в цикле, чтобы получить несколько входных данных. - person Yorkwar   schedule 18.12.2015