作者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
1F:→ clarkman:我们是使用ewf,所以放在Dram 125.230.3.169 03/14 02:39
2F:→ clarkman:目前很难一直累积笔数,因为protocol规定 125.230.3.169 03/14 02:40
3F:→ clarkman:一定要在时间内回,否则都算失败 125.230.3.169 03/14 02:41
4F:→ clarkman:收到资料後还得经过不少处理,导致太慢 125.230.3.169 03/14 02:41
5F:→ clarkman:所以必须一收到资料马上处理很多流程 125.230.3.169 03/14 02:42
6F:→ clarkman:然後立即回覆 125.230.3.169 03/14 02:42