スタック トレースは次のとおりです。
2012-03-16 19:15:09Z E System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。
System.Timers.Timer.set_Enabled(ブール値)
で System.Timers.Timer.Stop()
コードは次のとおりです。
プライベート メンバー変数として宣言されたタイマー。
Private _myTimer As System.Timers.Timer
タイマーメソッドを初期化します。
Private Sub InitializeMyTimer()
_myTimer = New System.Timers.Timer
_myTimer.Interval = My.Settings.TimeoutSeconds * 1000
_myTimer.Start()
AddHandler _myTimer.Elapsed, AddressOf MyTimer_Elapsed
End Sub
タイマー経過メソッド。WsMethodAsync は、.asmx Web サービス メソッドを呼び出します。
Private Sub MyTimer_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs)
Try
_myTimer.Stop()
Using thisWSHelper As New WSHelper
thisWsHelp.WsMethodAsync()
End Using
_myTimer.Start()
Catch ex As Exception
LogAndShowException(ex)
End Try
End Sub
タイマーには値が必要です。そうしないと、Timer.Stop() 呼び出しで例外がスローされます。これは散発的なエラーであり、誰かが以前にこれを経験したことがあるかどうか、または何が原因であるかについて何か考えがあるかどうかを確認しようとしています. タイマーの Elapsed イベントのイベント ハンドラーで WinForms アプリケーションで発生していますが、ユーザーのコンピューターでは散発的にしか発生していません。自分でエラーを再現できませんでした。