C'è un sovraccarico di prestazioni nell'utilizzo RaiseEvent in .NET?
-
02-10-2019 - |
Domanda
C'è un sovraccarico di prestazioni nell'utilizzo RaiseEvent in .NET ?
Ho un codice che è simile alla seguente.
Dim _startTick As Integer = Environment.TickCount
'Do some Task'
Dim duration As Integer = Environment.TickCount - _startTick
Logger.Debug("Time taken: {0}", duration)
RaiseEvent Datareceived()
I rendimenti sopra di codice:
Time taken: 1200
Time taken: 1400
Ma se rimuovo RaiseEvent
restituisce:
Time taken: 110
Time taken: 121
Sono sorpreso che il RaiseEvent
viene chiamato dopo la registrazione del tempo impiegato. Come influisce il tempo totale impiegato?
Sto lavorando su .NET Compact Framework .
Nel EventHandler mi aveva dato un MsgBox. Quando ho rimosso la finestra di messaggio, che ora sta mostrando tempo impiegato come 110, 121, ecc, che è, a meno che 500 millisecondi. Se metto retro Msgbox in eventhandler mostra 1200, 1400, ecc, cioè, più di un secondo.
Sono più sorpreso ora (l'evento viene generato dopo la parte di registrazione).
Soluzione
Prova a usare lo stesso in un'applicazione console. Un'applicazione console utilizza meno risorse.
Qui è possibile identificare il problema esatto.