串口读取数据解决思路

串口读取数据
现有一个串口类,读取数据使用事件触发模式。setcommmask(hComm,ev_rxchar|ev_rxflag),另一个程序每隔一定时间向串口发送数据,时间间隔大约为20ms,现用这个串口类读取数据,readfile一看,一次竟然读了好几条数据!!在读的线程中使用GetTickCount看,发现读及处理时间很短可忽略,读线程优先级设置到HIGHEST,这样竟然还是读了几条数据,说明系统在触发串口事件的时间上设置不对吧,,那么怎么修改系统触发事件的时间呢??不知分析对不对,请指教!(每条数据最后一个字符为特殊字符,设置为收到这个特殊字符触发事件,即ev_rxflag标志)

------解决方案--------------------
还是设置报头报尾来区分每个数据包吧,想要每次读完整又只能是一次发送的数据基本上是不可能的.
------解决方案--------------------
时间间隔大约为20ms
windows下,线程切换时间差不多就是这个数
同意ls的意见
------解决方案--------------------
一般好像是要设置数据报报头和报尾来区分一条数据报。