Существуют ли потери производительности при использовании RaiseEvent в .NET ?
У меня есть код, похожий на следующий.
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 и т. Д., То есть больше секунды.
Теперь я более удивлен (событие возникает после части регистрации).