J'ai un BackgroundWorker
qui appelle une fonction sur un thread non-GUI. J'ai remarqué que pour certains éléments de formulaire, je peux sortir avec la mise à jour de l'interface graphique sans faire l'appel. D'autres entraîneront toujours une erreur d'exécution car le programme a tenté de mettre à jour l'interface graphique d'une manière non threadsafe.Comment se fait-il que je n'aie pas besoin d'une invocation pour certains éléments de formulaire d'un thread non-GUI?
Pourquoi est-ce?
Est-il coûteux d'appeler cette fonction pour les contrôles qui ne nécessitent pas d'invocation? – Pieter
Comme vous pouvez le voir dans le code ci-dessus, non, ce n'est pas cher. Si Invoke n'est pas requis, l'appel sera effectué dans le même thread. Je ne m'inquiéterais pas pour ça. Si vous traitez des dizaines de milliers d'éléments, ne signalez pas de progression pour chaque élément, ou le redessin sera lent. :) –