timeSetEvent的迷惑啊。高手请进啊。急急
fxj31 2007-04-03 04:52:55 基本程序如下:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim temp As New ipfunctionback(AddressOf TimeProc)
lTimeID = timeSetEvent(1000, 1, temp, 1, 1)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Call EndCount()
End Sub
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Integer, ByVal uResolution As Integer, ByVal lpFunction As ipfunctionback, ByVal dwUser As Integer, ByVal uFlags As Integer) As Integer
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Integer) As Integer
Public Delegate Sub ipfunctionback(ByVal uID As Integer, ByVal uMsg As Integer, ByVal dwUser As Integer, ByVal dw1 As Integer, ByVal dw2 As Integer)
Public lmmCount As Integer
Public lTimeID As Integer
Sub temp1()
Dim temp As New ipfunctionback(AddressOf TimeProc)
lTimeID = timeSetEvent(1000, 1, temp, 1, 1)
End Sub
Sub TimeProc(ByVal uID As Integer, ByVal uMsg As Integer, ByVal dwUser As Integer, ByVal dw1 As Integer, ByVal dw2 As Integer)
lmmCount = lmmCount + 1
Me.Label1.Text = CStr(lmmCount)
End Sub
Sub EndCount()
timeKillEvent(lTimeID)
End Sub
现运行时有奇怪问题:
直接运行时timeSetEvent回调了几次TimeProc出错信息为(未处理的“System.NullReferenceException”类型的异常出现在 未知模块 中。)
但如果我在出错前点击下button2(也就是执行下Sub EndCount())再运行button1_chick就没有问题。
这到底是怎么回事。小弟新手不明白啊