在.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等,即超过一秒钟。
我现在更加惊讶(事件在记录部分之后引发)。
答案 0 :(得分:1)
尝试在控制台应用程序中使用相同的内容。控制台应用程序使用较少的资源。
在这里,您可以确定确切的问题。