Есть ли накладные расходы на производительность в использовании Raiseevent в .net?

StackOverflow https://stackoverflow.com/questions/2756632

Вопрос

Есть ли накладные расходы на производительность в использовании извлечения в .СЕТЬ?

У меня есть код, который похож на следующее.

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 и т. Д., То есть более чем секунду.

Сейчас я более удивлен (событие поднимается после участка журнала).

Это было полезно?

Решение

Попробуйте использовать то же самое в приложении консоли. Приложение консоли использует меньше ресурсов.

Здесь вы можете определить точную проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top