Есть ли какие-либо потери производительности при использовании RaiseEvent в .NET? - PullRequest
1 голос
/ 03 мая 2010

Существуют ли потери производительности при использовании 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 и т. Д., То есть больше секунды.

Теперь я более удивлен (событие возникает после части регистрации).

1 Ответ

1 голос
/ 25 мая 2010

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

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

...