¿Hay alguna sobrecarga de rendimiento en el uso RaiseEvent en .NET?
-
02-10-2019 - |
Pregunta
¿Hay alguna sobrecarga de rendimiento en el uso RaiseEvent en .NET ?
Tengo un código que es similar al siguiente.
Dim _startTick As Integer = Environment.TickCount
'Do some Task'
Dim duration As Integer = Environment.TickCount - _startTick
Logger.Debug("Time taken: {0}", duration)
RaiseEvent Datareceived()
Los rendimientos código anterior:
Time taken: 1200
Time taken: 1400
Pero si RaiseEvent
quitarlo regresa:
Time taken: 110
Time taken: 121
Me sorprende que el RaiseEvent
se llama después de la tala del tiempo empleado. ¿Cómo afecta el tiempo total?
Estoy trabajando en .NET Compact Framework .
En el manejador de sucesos me había dado un MsgBox. Cuando quité el cuadro de mensaje, ahora se muestra el tiempo tomado como 110, 121, etc., es decir, menos que 500 milisegundos. Si pongo en la parte posterior MsgBox eventhandler muestra 1200, 1400, etc., es decir, más de un segundo.
Estoy más sorprendido ahora (el evento se produce después de la parte de registro).
Solución
Trate de usar la misma en una aplicación de consola. Una aplicación de consola utiliza menos recursos.
Aquí puede identificar el problema exacto.