.NETでRaiseEventを使用する際にパフォーマンスオーバーヘッドはありますか?
-
02-10-2019 - |
質問
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コンパクトフレームワーク.
イベントハンドラーでは、msgboxを与えました。メッセージボックスを削除すると、110、121などとして取られた時間が表示されています。つまり、500ミリ秒よりも少ないです。 msgboxをイベントハンドラーに戻すと、1200、1400などが表示されます。つまり、1秒以上です。
今はもっと驚いています(ロギング部分の後にイベントが提起されています)。
解決
コンソールアプリケーションで同じものを使用してみてください。コンソールアプリケーションでは、より少ないリソースを使用します。
ここでは、正確な問題を特定できます。
所属していません StackOverflow