私はこのコードが何をするのかを理解しようとしています。エラーが頻繁に発生しますが(システムに損傷を与えるような方法ではありません)、気になるほどです。ここで何が起こっているのかについての詳細情報と、これを修正/防止する方法についての提案を得ることができれば素晴らしいと思います。
コード
Public Shared Sub Fire(ByVal thisEvent As [Delegate], _
ByVal ParamArray args() As Object)
If (thisEvent Is Nothing) Then
Exit Sub
End If
Dim delegates() As [Delegate] = thisEvent.GetInvocationList()
For Each synch As [Delegate] In delegates
Try
synch.DynamicInvoke(args)
Catch ex As System.Exception
Util.utEmail.SendErrorMail("Async event fire error.", ex) //Email out error
End Try
Next
End Sub
一般的なエラー
ユーザーメッセージ:非同期イベント起動エラー。
エラータイプ:System.Reflection.TargetInvocationException
エラーメッセージ:呼び出しのターゲットによって例外がスローされました。
エラーの場所:System.Reflection.TargetInvocationException:呼び出しのターゲットによって例外がスローされました。---> System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。
System.Windows.Forms.Control.MarshaledInvoke(コントロール呼び出し元、デリゲートメソッド、Object [] args、ブール同期)
at System.Windows.Forms.Control.Invoke(デリゲートメソッド、Object [] args)
at TSG.TransIT.UI .UIControls.ctGPViewTrip.updateTrip()
at TSG.TransIT.UI.UIControls.ctGPViewTrip.handleEditTrip(Object sender、EditTripAnnouncementEventArgs e)