如何解决vb6 - 读取文件挂在读取串行端口上?
我使用 readfile 通过 api 而不是 WinComm 从串口读取数据。它工作正常但是当对方没有发送数据时会挂起数据接收,这里有一些代码:
'----------on port connect section---------------
With cTimeOuts
.ReadIntervalTimeout = 20
.ReadTotalTimeoutMultiplier = 20
.ReadTotalTimeoutConstant = 20
.WriteTotalTimeoutMultiplier = 20
.WriteTotalTimeoutConstant = 20
End With
rtLng = SetCommTimeouts(hPort,cTimeOuts)
'----------on data receive section---------------
With dOverlapped
.Internal = 0
.InternalHigh = 0
.offset = 0
.OffsetHigh = 0
.hEvent = 0
End With
call ReadFile(hPort,BytesBuffer(0),UBound(BytesBuffer) + 1,dwBytesRead,dOverlapped)
我试过:
一个。将ReadIntervalTimeout
设置为MAXDWORD
,将ReadTotalTimeoutMultiplier
& ReadTotalTimeoutConstant
都设置为0
,可以避免接收数据挂起,但是由于随机发生,接收数据会不完整,所以这不是我的选择。
B.互联网上的一些示例代码使用
Call ReadFile(hPort,0)
使用 0
而不是 Overlapped
设置,但程序崩溃了。
所以我不知道用什么来解决这个问题,another thread
?还是Overlapped
?一些实际的 vb6 代码更好,因为我不熟悉这部分,谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。