Bonjour,
Je suis en train d'écrire une petite application permettant à des utilisateurs de suite "en temps réel" certaines de leurs activités dans une base de données.
L'écran est composé en 3 partie (cf. illustration) :
Premier DataGridView : filView
Second DataGridView : splView
Troisième DataGridView : parView
Ces trois datagrid sont liés :
- Le premier correspond à des files d'impression
- Le second correspond aux éditions en queue dans une file d'impression données
- La troisième correspond aux paramètres d'une édition
J'ai donc procédé comme suit :
- Un timer qui se lance toutes les X secondes, et qui exécute la requête qui allimente filView.
- Un événement SelectionChanged sur filView qui exécute la requête qui allimente splView lorsqu'une ligne est sélectionnée dans filView.
- Un événement SelectionChanged sur sqlView qui exécute la requête qui allimente parView lorsqu'une ligne est sélectionnée dans splView.
- Si aucune ligne n'est sélectionnée dans chacun des datagridview, on sélectionne la première ligne.
Voici mon problème :
A chaque tick du timer, je m'attends à ce que filView s'alimente, puis splView, puis parView.
Eventuellement, entre deux tick, si je choisi une ligne dans filView, splView est réalimenté ainsi que parView.
Eventuellement, entre deux tick, si je choisi une ligne dans splView, parView est réalimenté.
Ce qu'il se passe réellement :
Le programme passe son temps à lancer des événements selectionchanged sur splView et parView.
Je ne comprends absolument pas pourquoi.
Du coup le programme fait au moins 50 requêtes par secondes, ce qui ralenti considérablement la machine, fige le programme, et je vais me faire engueuler par les admins du serveur...
J'ai essayé de commenter des parties de code, je ne comprends pas ce qu'il se passe.
Je met mon code en pièce jointe (projet complet)
Partager