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

在事件处理程序中,我给了一个 MsgBox。当我删除消息框时,它现在显示的时间为 110、121 等,即少于 500 毫秒。如果我将 Msgbox 放回事件处理程序中,它会显示 1200、1400 等,即超过一秒。

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

4

1 回答 1

1

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

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

于 2010-05-25T05:31:08.743 回答