.NETで RaiseEvent を使用すると、パフォーマンスのオーバーヘッドはありますか?
次のようなコードがあります。
Dim _startTick As Integer = Environment.TickCount
'Do some Task'
Dim duration As Integer = Environment.TickCount - _startTick
Logger.Debug("Time taken: {0}", duration)
RaiseEvent Datareceived()
上記のコードは次を返します。
Time taken: 1200
Time taken: 1400
しかし、削除すると次のようRaiseEvent
に返されます。
Time taken: 110
Time taken: 121
RaiseEvent
時間がかかったログの後に呼び出されることに驚いています。合計所要時間にどのように影響しますか?
私は.NET Compact Frameworkに取り組んでいます。
Eventhandler では、MsgBox を指定しました。メッセージ ボックスを削除すると、現在は 110、121 など、つまり 500 ミリ秒未満の時間が表示されています。Msgbox を eventhandler に戻すと、1200、1400 など、つまり 1 秒以上表示されます。
今はもっと驚いています (イベントはロギング部分の後に発生します)。