1

.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 秒以上表示されます。

今はもっと驚いています (イベントはロギング部分の後に発生します)。

4

1 に答える 1

1

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

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

于 2010-05-25T05:31:08.743 に答える