Я пишу приложение, которое считывает ввод со сканера штрих-кода, я хочу, чтобы он работал так: он работает как кейлоггер, и когда ввод достаточно быстрый, я знаю, что получаю ввод со сканера штрих-кода .
Теперь моя проблема в том, что я не знаю, когда я получаю последний символ из сканера штрих-кода, поэтому я знаю, что у меня есть окончательный и действительный штрих-код.
Мой метод вызывается только при получении символа, поэтому я должен проверить, является ли мой персонаж последним полученным.
Способ, которым я хотел сделать это, я создаю новый поток в конце моего метода, который спит для MAXIMUM_TIME_BETWEEN_CHARACTERS_FROM_BARCODE_SCANNER + 1 миллисекунда, после пробуждения он проверяет, получил ли я какие-либо новые символы, если я сделал это поток умирает, если новые символы не получены, это означает, что полный штрих-код получен, и я могу использовать его.
Но, делая это, я начал получать всевозможные странные ошибки, такие как преждевременная смерть при исполнении.
Кто-нибудь может предложить другое решение?
Я пишу это на C #, если это актуально.