Ho trovato questo codice:Qual è l'uso di Invoke() in .net?
this.Invoke(new EventHandler(EventGetSum));
Non è questo lo stesso di scrittura:
EventGetSum();
Qual è l'uso di questo?
Ho trovato questo codice:Qual è l'uso di Invoke() in .net?
this.Invoke(new EventHandler(EventGetSum));
Non è questo lo stesso di scrittura:
EventGetSum();
Qual è l'uso di questo?
Se si scrive EventGetSum()
che immediatamente chiama il metodo EventGetSum.
Se si scrive new EventHandler(EventGetSum)
che crea un delegato che (a sua volta) chiama EventGetSum quando viene richiamato.
La chiamata a Control.Invoke
richiama il delegato specificato dal thread dell'interfaccia utente responsabile del controllo. Questo è necessario perché non devi accedere agli elementi dell'interfaccia utente da thread arbitrari.
Esegue il metodo EventGetSum
nella discussione a cui appartiene la finestra this
.
Questo è normalmente utilizzato quando si tratta di chiamate dell'interfaccia utente cross thread.
Vedere la documentazione MSDN per ISynchronizeInvoke.
Questo è un titolo piuttosto brutto, forse dovresti considerare di cambiarlo in qualcosa di più descrittivo – grapefrukt
Spunta questa domanda http://stackoverflow.com/questions/571706/shortest-way-to-write-a-thread-safe-access -Metodo-to-a-windows-forme-control/571.749 # 571.749 – alex2k8