Y at-il les frais généraux de performance dans l'utilisation RaiseEvent dans .NET?
-
02-10-2019 - |
Question
Y at-il les frais généraux de performance en utilisant RaiseEvent .NET ?
J'ai un code qui est similaire à la suite.
Dim _startTick As Integer = Environment.TickCount
'Do some Task'
Dim duration As Integer = Environment.TickCount - _startTick
Logger.Debug("Time taken: {0}", duration)
RaiseEvent Datareceived()
Le rendement du code ci-dessus:
Time taken: 1200
Time taken: 1400
Mais si je retourne supprimer RaiseEvent
il:
Time taken: 110
Time taken: 121
Je suis surpris que le RaiseEvent
est appelé après l'enregistrement du temps pris. Comment affecte-t-il le temps total?
Je travaille sur .NET Compact Framework .
Dans le eventHandler j'avais donné une MsgBox. Lorsque j'ai enlevé la boîte de message, il montre maintenant le temps pris comme 110, 121, etc., qui est, moins de 500 millisecondes. Si je mets le dos Msgbox en eventhandler il montre 1200, 1400, etc., qui, plus d'une seconde.
Je suis plus surpris maintenant (l'événement est déclenché après la partie de l'exploitation forestière).
La solution
Essayez d'utiliser le même dans une application de la console. Une application console utilise moins de ressources.
Ici, vous pouvez identifier le problème exact.