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).

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top