.NETでRaiseEventを使用する際にパフォーマンスオーバーヘッドはありますか?

StackOverflow https://stackoverflow.com/questions/2756632

質問

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秒以上です。

今はもっと驚いています(ロギング部分の後にイベントが提起されています)。

役に立ちましたか?

解決

コンソールアプリケーションで同じものを使用してみてください。コンソールアプリケーションでは、より少ないリソースを使用します。

ここでは、正確な問題を特定できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top