Input 检测条形码扫描仪何时结束输入

Input 检测条形码扫描仪何时结束输入,input,barcode,character,Input,Barcode,Character,我正在编写一个从条形码扫描仪读取输入的应用程序,我希望它的工作方式是:它作为键盘记录器工作,当输入足够快时,我知道我正在从条形码扫描仪获取输入 现在我的问题是,我不知道何时从条形码扫描仪中获取最后一个字符,所以我知道我有一个最终的有效条形码 我的方法只在接收到字符时被调用,因此这是我必须检查我的字符是否是最终接收到的字符的时候 我想这样做的方式是,我在我的方法的末尾创建一个新线程,该线程在\u条形码\u扫描器的\u个字符\u+1毫秒字节之间的最长\u时间\u睡眠,当它醒来后,它会验证我是否收到任

我正在编写一个从条形码扫描仪读取输入的应用程序,我希望它的工作方式是:它作为键盘记录器工作,当输入足够快时,我知道我正在从条形码扫描仪获取输入

现在我的问题是,我不知道何时从条形码扫描仪中获取最后一个字符,所以我知道我有一个最终的有效条形码

我的方法只在接收到字符时被调用,因此这是我必须检查我的字符是否是最终接收到的字符的时候

我想这样做的方式是,我在我的方法的末尾创建一个新线程,该线程在\u条形码\u扫描器的\u个字符\u+1毫秒字节之间的最长\u时间\u睡眠,当它醒来后,它会验证我是否收到任何新字符,如果我这样做了线程就会死亡,如果没有收到新字符,则表示收到完整的条形码,我可以使用它

但通过这样做,我开始得到各种奇怪的错误,比如死刑过早死亡

有人能提出不同的解决方案吗


如果相关的话,我是用C#写的

您是否使用实际的条形码扫描仪测试了您的程序?因为根据我的经验,我使用的条形码在扫描的字符串/数字末尾附加换行符。

我重新构造了此解决方案:

我想这样做的方式是,我在我的方法的末尾创建一个新线程,该线程在\u条形码\u扫描器的\u个字符\u+1毫秒字节之间的最长\u时间\u睡眠,当它醒来后,它会验证我是否收到任何新字符,如果我这样做了线程就会死亡,如果没有收到新字符,则表示收到完整的条形码,我可以使用它


最终它成功了。我仍然不知道是什么原因导致了我以前的错误,但在重新构造代码后,我对这种方法没有任何问题。

我的方法也是这样做的。是的,它没有添加换行符。