VB中程序中引用timer,timer无法循环

Fori=0To167Ifley(i)>1ThenX=iY=0Timer1_TimerEndIfNexti引用timer以后timer本身无法循环,是为什么... For i = 0 To 167
If ley(i) > 1 Then
X = i
Y = 0
Timer1_Timer
End If
Next i
引用timer以后 timer本身无法循环,是为什么
展开
 我来答
运动一圈
2016-06-22 · TA获得超过949个赞
知道大有可为答主
回答量:964
采纳率:92%
帮助的人:479万
展开全部
可以考虑VB多线程编程吧,一样的类似创建一个timer一样的一个线程,和你现在的应用程序不相互影响
下面的程序是个例子,控件自己添加,还要添加一个模块(菜单里的工程---添加模块)
3个text控件,1个command控件
你可以循环读取每个线程函数的返回值然后告诉主程序
模块代码:
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Public Const TimeId As Long = 1 '线程ID
Public n1 As Long
Public Sub myProc()
'这里填写自己的过程或调用的函数
Form1.Text1.Text = myFun(n1)
n1 = n1 + 1
End Sub
Public Sub myProc1()
'这里填写自己的过程或调用的函数
Form1.Text2.Text = Form1.Text2.Text - 1
End Sub
Private Function myFun(n As Long) As Long
'调用函数

myFun = n
End Function

窗体代码:
Dim TimeInterval As Long '时间间隔,毫秒
Private Sub Command1_Click()
'创建线程
SetTimer Me.hwnd, TimeId, TimeInterval, AddressOf myProc
SetTimer Me.hwnd, 2, TimeInterval, AddressOf myProc1
End Sub
Private Sub Form_Load()
n1 = 0
Text1.Text = ""
Text2.Text = 1000
TimeInterval = 1000
End Sub
Private Sub Form_Unload(Cancel As Integer)
'结束线程
KillTimer Me.hwnd, TimeId
KillTimer Me.hwnd, 2
End Sub
Private Sub Text1_Change()
Text3.Text = "线程1执行结果" & n1
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式