寫線程的一些感想(補充)

来源:互联网 发布:注册域名后如何实名 编辑:程序博客网 时间:2024/06/05 14:59

      雖然自動存倉系統功能有滿足,但是,后來還是發現了一些問題。因為后台和主線程用的都是同一個Query,所以當主線程對Query操作時會造成死鎖。于是想加以改進,重新設計監控做法:從經理那學習到,線程處理數據最好使用Buffer,我定義了一個Buffer,里面存放工單的信息,然后線程去處理那些數據,去除和主線程的同步。 重新寫了個線程,功能也似乎實現了需求,但單元測試的時候還是發現了一個問題:輸入條件帶出工單信息后,會出現一些莫明的錯誤,如:

Access violation at address 4D5EB03F in module 'SQLORA32.DLL'. Write of address 00000001

General SQL error.
ORA-01002: fetch out of sequence

大概錯誤就query指針移動時候的溢出(我意會來的),單步調試真發現不了問題所在,頭痛了我几天。后來回憶Delphi深度編程里面有講后台數據庫查詢必須獨立在另一個Session下工作。莫非就這個問題,于是試了下,再加了個Session只給線程使用,測試后發現,OK了。

原创粉丝点击