我有一个计时器,每5分钟检查一次网页,通过Webbrowser元素进行更改。每当页面改变时(在新订单上),我的计时器将播放.wav文件(哔哔声)。这似乎在前几分钟或有时在前几个小时起作用,但是在没有警告/异常的情况下它会停止检查。
什么可能导致这个问题?
编辑#1
这里是我正在使用的代码:
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Dim sQuelltext As String = WebBrowser1.DocumentText.ToString
If Not String.IsNullOrEmpty(sQuelltext) And sQuelltext.Contains("pending") Then
My.Computer.Audio.Play(soundFile, AudioPlayMode.Background)
End If
End Sub
答案 0 :(得分:1)
通常,计时器不会无故停止。
典型的问题可能是:为了避免在最后一次呼叫仍然没有完成时运行定时器(避免意外的赛车问题),在timer_tick的第一行,定时器被禁用,最后一次定时器再次启用。
现在忘记了在几个位置使用了return语句,或者某些代码行可能触发异常。在这种情况下,重新启用计时器将不会被执行,它似乎停止
<强>更新强> 如果WebBrowser1为Nothing / Disposed,则访问它可能会导致异常。如果发生这种情况,那么您可能会将“无音频”解释为定时器已停止的反馈,而实际触发,但只执行代码行,不会创建异常(然后该方法将被保留)。很少发生,是奇怪的行为,但这可能是一个例子。
因此,您可以在计时器的第一行添加一些内容来切换对象的状态,并在其底部添加另一个第二个对象的切换。
如果没有任何变化则出现问题,如果仅发生第一次切换,则在那里设置断点并按照下一行进行操作。如果逐步调试似乎从一个特定的行跳出来,那么就会出现问题。您可以使用即时窗口来检查下一行部分的内容。一旦找到错误原因
,通常很容易修复