在.NET中使用RaiseEvent是否有任何性能开销?

时间:2010-05-03 07:17:22

标签: performance compact-framework raiseevent

.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放回到事件处理程序中,它会显示1200,1400等,即超过一秒钟。

我现在更加惊讶(事件在记录部分之后引发)。

1 个答案:

答案 0 :(得分:1)

尝试在控制台应用程序中使用相同的内容。控制台应用程序使用较少的资源。

在这里,您可以确定确切的问题。