作者DearKurt ("小朋友"會自己找出路...)
看板Programming
標題Re: [問題] Timer、Thread
時間Fri Mar 12 15:49:14 2010
※ 引述《clarkman (涼雨)》之銘言:
: 我在已經吃掉許多資源的程式下,想要定期接收RS232的資料
: 但是RS232要求必須在40ms接收2個Com Port的資料
: 處理速度卻慢了一些,無法在那麼短的時間處理
最近也有寫過這方面程式 不過是用C#
分享一下我處理方法
第一個 最簡單的方法 就是拉高速度
19200bps 接收70多Byte 就差不多30ms左右了
38400bps 就降到15ms左右
不過這要看設備有無支援
另一個 接收資料是否要記錄下來 存到資料庫? 如果是
你那麼短的時間接收完資料 又要馬上存到硬碟裡 IO是很頻繁的
如果你電腦又只用一顆硬碟 想必會把電腦拖得很慢
我的方法會用兩個timer或是thread去接收資料
接收完存到buffer裡面
再用另一個timer或是thread把buffer的資料讀出來
累積一定資料筆數 再一次寫進資料庫
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.217.107
→ clarkman:我們是使用ewf,所以放在Dram 125.230.3.169 03/14 02:39
→ clarkman:目前很難一直累積筆數,因為protocol規定 125.230.3.169 03/14 02:40
→ clarkman:一定要在時間內回,否則都算失敗 125.230.3.169 03/14 02:41
→ clarkman:收到資料後還得經過不少處理,導致太慢 125.230.3.169 03/14 02:41
→ clarkman:所以必須一收到資料馬上處理很多流程 125.230.3.169 03/14 02:42
→ clarkman:然後立即回覆 125.230.3.169 03/14 02:42