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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top