2011-05-08 63 views
0

我正在寫一個應用程序,它從條形碼掃描器讀取輸入,我希望它的工作方式是:它可以用作鍵盤記錄器,當輸入速度足夠快時,從條形碼掃描儀獲得輸入。檢測條碼掃描器何時結束輸入

現在我的問題是我不知道什麼時候從條形碼掃描儀獲得最後一個字符,所以我知道我有一個最終有效的條形碼。

我的方法只有在接收到一個字符時才被調用,所以這是當我必須檢查我的角色是否是最後一個接收到的時候。

我想做到這一點的方式是,我在我的方法是休眠MAXIMUM_TIME_BETWEEN_CHARACTERS_FROM_BARCODE_SCANNER + 1個milliseoconds,它醒來後,如果我收到任何新的角色,如果我這樣做,是它驗證最終創建一個新的線程線程死亡,如果沒有收到新的字符,這意味着收到完整的條碼,我可以使用它。

但是通過這樣做,我開始獲得各種奇怪的錯誤,比如執行死於過早。

任何人都可以提出一個不同的解決方案嗎?

我在C#中編寫它,如果它是相關的。

回答

-1

我重組這個解決方案:

我想做到這一點的是,我在我的方法是休眠MAXIMUM_TIME_BETWEEN_CHARACTERS_FROM_BARCODE_SCANNER + 1個milliseoconds年底創建一個新的線程,它喚醒它驗證,如果後的方式我收到任何新字符,如果我這樣做了線程死亡,如果沒有收到新字符,這意味着收到完整的條碼,我可以使用它。

它最終奏效了。我仍然不知道是什麼導致了我之前的錯誤,但是在重新構建代碼之後,我完全沒有遇到這種方法的問題。

2

您是否使用實際的條形碼掃描儀測試了您的程序?因爲根據我的經驗,我使用的條形碼在掃描的字符串/數字的末尾添加換行符。

+0

這就是我的所作所爲 – Jake 2012-06-21 09:21:21

+0

是的,它不會添加換行符。 – b2238488 2014-06-27 13:16:21