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

时间:2011-05-08 15:25:39

标签: input barcode character

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

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

我的方法仅在收到一个角色时被调用,所以这时我必须检查我的角色是否是最后一个角色。

我想要这样做的方法是,我在我的方法结束时创建一个新线程,它休眠MAXIMUM_TIME_BETWEEN_CHARACTERS_FROM_BARCODE_SCANNER + 1毫秒,在它唤醒之后验证我是否收到了任何新字符,如果我这样做了线程死了,如果没有收到新的字符,就意味着收到了完整的条形码,我可以使用它。

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

有人可以提出不同的解决方案吗?

我在C#中写这个是相关的。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:-1)

我重组了这个解决方案:

  

我想要这样做的方法是,我在我的方法结束时创建一个新线程,它休眠MAXIMUM_TIME_BETWEEN_CHARACTERS_FROM_BARCODE_SCANNER + 1毫秒,在它唤醒之后验证我是否收到了任何新字符,如果我这样做了线程死了,如果没有收到新的字符,就意味着收到了完整的条形码,我可以使用它。

它最终奏效了。我仍然不知道是什么原因造成了我之前的错误,但在重组代码之后,我对此方法没有任何问题。