Thème
Thread UI et traitements périodiques
Thème consacré au thread UI en WPF et WinForms, à async/await, au Dispatcher et au choix des minuteries dans les applications de bureau Windows.
Pourquoi ce sujet devient délicat
Dans les applications WPF et WinForms, les traitements asynchrones, les mises à jour de l’interface et les tâches périodiques finissent souvent par se mélanger, jusqu’à ce qu’on ne sache plus clairement quel code s’exécute sur quel thread. Ce thème regroupe les blocages, les mises à jour entre threads et le choix des minuteries dans un même ensemble pratique.
- Il devient difficile de savoir sur quel contexte l’exécution reprend après
await - Le travail de l’interface et celui de l’arrière-plan commencent à s’entremêler
DispatcherTimer,System.Threading.TimeretPeriodicTimersont utilisés sans frontières explicites- Le code WinForms ou WPF devient progressivement plus difficile à maintenir
Questions courantes sur ce sujet
.Resultou.Wait()subsistent et bloquent l’interface- La frontière entre
Task.Runet les mises à jour de l’interface n’est pas claire - Les traitements périodiques sont dispersés et dérivent ou se chevauchent
- Il faut réduire le couplage au thread UI sans brouiller les responsabilités de l’écran
Direction typique
Ce domaine devient plus lisible lorsque le thread UI et les traitements périodiques sont organisés ensemble, au lieu d’être corrigés incident par incident. Les articles et services associés aident à décider si la prochaine étape relève de la conception, de l’implémentation ou des deux.
Contactez-nous
Si cette page correspond à votre situation, décrivez-nous le contexte actuel et le type d’aide dont vous avez besoin.