我用Winsock控件在两台主机之间定时发送数据,用QueryPerformancounter函数作高精度定时器定时发送数据(10ms),同时记录数据来回的时间,但时间一长,定时发送数据的速度降了下来,请问这是什么原因呢?
解决方案 »
- VB 自制一个类似MSGBOX函数的窗口
- 多线程复制文件(请教)
- 为什么我调用了一个API函数程序不能运行,系统提示:不是有效的win32应用程序???求救高手!!!!!
- 装上adsl以后,只能打开网页浏览,ftp不好用。用flashget下载东西也下不下来
- 在线等待,高分送人!
- 如何在VB,WIN98在实现不规则窗口,就像解霸中的界面?
- 用VB将MSFLEXGRID中的数据导入到EXCEL中,MSFLEXGRID中的合并项(mercecells)在EXCEL中怎样处理?
- 这个应该怎么改??
- 一个关于sql的问题,高手请指教
- 如何在VB中调用HEMLHELP文件并取得索引
- VB中有没有对源码进行自动排版的功能?
- 使用winsock控件,如何确认数据以被对方接收
Private Sub CmdSend_Click()
Dim LagTick1 As LARGE_INTEGER
Dim LagTick2 As LARGE_INTEGER
Dim lTime As Long
CmdSend.Enabled = False
CmdStop.Enabled = True
lTime = 10 * lMSFreq '10毫秒的震动次数
Call QueryPerformanceCounter(LagTick1)
LagTick2 = LagTick1
While CmdStop.Enabled = True
Call QueryPerformanceCounter(LagTick2)
'如果震动次数大于10毫秒则数据加1,发送数据,计时,显示数据
If LagTick2.lowpart - LagTick1.lowpart > lTime Then
LagTick1 = LagTick2
i = i + 1
WinClient.SendData "0" & i
Sendtime = GetTickCount()
End If
DoEvents
Wend
End Sub
进行高精度计时推荐用:timeSetEvent
WinClient.SendData "0" & i
后面注意+
doevents