0

我有一个计时器,它每 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
4

1 回答 1

1

通常计时器不会无故停止。

典型的问题可能是:为了避免在最后一次调用仍未完成时运行计时器(避免意外的竞速问题),在 timer_tick 的第一行禁用计时器,并在最后再次启用计时器。

现在忘记了在某些位置使用了 return 语句,或者某些代码行可能会触发异常。在那种情况下,重新启用计时器将不会被执行,并且它似乎停止了

更新 如果 WebBrowser1 是 Nothing/Disposed,那么访问它可能会导致异常。如果发生这种情况,那么您可以将“无音频”解释为计时器已停止的反馈,虽然它实际上会触发,但仅执行代码行,不会产生异常(然后该方法将被保留)。很少发生,是奇怪的行为,但这可能是一种情况。

因此,您可以在计时器的第一行添加一些东西来切换对象的状态,并在它的底部添加第二个对象的另一个切换。

如果没有任何变化,则说明有问题,如果仅发生第一次切换,则在此处设置断点并按照下一行进行。如果逐步调试似乎从某一特定行跳出来,那就有问题了。您可以使用即时窗口来检查下一行的部分内容。通常很容易修复,只要您找到错误的原因

于 2013-04-09T18:35:05.763 回答