在.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。
在事件处理程序中,我给了一个 MsgBox。当我删除消息框时,它现在显示的时间为 110、121 等,即少于 500 毫秒。如果我将 Msgbox 放回事件处理程序中,它会显示 1200、1400 等,即超过一秒。
我现在更惊讶(事件是在记录部分之后引发的)。