Je comprends qu'un gestionnaire d'événements s'exécute sur n'importe quel thread qui a appelé l'événement. Je comprends également le besoin de mettre à jour les contrôles de formulaire uniquement à partir du thread qui a créé les contrôles. Je suppose que le fil de l'interface utilisateur est celui qui a créé le formulaire dans le but de cette question.Evénements, threads et messages .NET
Si l'événement est le résultat d'un message publié, tel qu'un message de peinture, le gestionnaire n'est-il pas découplé du thread d'origine? Si cela est vrai, n'importe quel thread pourrait invoquer des opérations d'invalidation et la peinture résultante se produirait toujours sur le thread de l'interface utilisateur puisque c'est le seul qui gère les messages du formulaire.
Voici comment cela se passe dans ma tête vers 2h00 du matin avec un bol de collation vide à côté de moi. S'il vous plaît clarifier et corriger afin que je puisse avoir une bonne compréhension des mécanismes au travail.
L'appel de 'Update' après' Invalidate' revient à appeler 'Refresh', ce qui aurait dû être appelé depuis le thread de l'interface utilisateur. –