Есть ли накладные расходы на производительность в использовании Raiseevent в .net?
-
02-10-2019 - |
Вопрос
Есть ли накладные расходы на производительность в использовании извлечения в .СЕТЬ?
У меня есть код, который похож на следующее.
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 обратно в EventHandler, он показывает 1200, 1400 и т. Д., То есть более чем секунду.
Сейчас я более удивлен (событие поднимается после участка журнала).
Решение
Попробуйте использовать то же самое в приложении консоли. Приложение консоли использует меньше ресурсов.
Здесь вы можете определить точную проблему.