Je trouve ce code:Quelle est l'utilisation de Invoke() dans .net?
this.Invoke(new EventHandler(EventGetSum));
est-ce pas la même chose que l'écriture:
EventGetSum();
Quelle est l'utilisation de ce?
Je trouve ce code:Quelle est l'utilisation de Invoke() dans .net?
this.Invoke(new EventHandler(EventGetSum));
est-ce pas la même chose que l'écriture:
EventGetSum();
Quelle est l'utilisation de ce?
Si vous écrivez EventGetSum()
immédiatement appelle la méthode EventGetSum.
Si vous écrivez new EventHandler(EventGetSum)
, cela crée un délégué qui appelle (à son tour) EventGetSum lorsqu'il est appelé.
L'appel à Control.Invoke
appelle le délégué donné du thread d'interface utilisateur responsable du contrôle. Cela est nécessaire car vous ne devez pas accéder aux éléments de l'interface utilisateur à partir de threads arbitraires.
Il exécute la méthode EventGetSum
dans le thread auquel appartient la fenêtre this
.
Ceci est normalement utilisé pour traiter les appels d'interface utilisateur croisés.
Consultez la documentation MSDN pour ISynchronizeInvoke.
C'est un très mauvais titre, peut-être que vous devriez envisager de le changer pour quelque chose de plus descriptif – grapefrukt
Cochez cette question http://stackoverflow.com/questions/571706/shortest-way-to-write-a-thread-safe-access -méthode-à-un-windows-forms-control/571749 # 571749 – alex2k8