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

È stato utile?

Soluzione

Prova a usare lo stesso in un'applicazione console. Un'applicazione console utilizza meno risorse.

Qui è possibile identificare il problema esatto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top