Bonsoir,
Pour mon projet au BTS, actuellement il y a un étudiant que s'occupe de la gestion qui est démarré une Winform. la Form contiens en faite juste un splashScreen que l'on affiche ou pas suivant l'attente de l'IHM.
Il contiens aussi la gestion bien sur, vu son nom.
La Gestion démarre l'IHM dans un thread de cette façon:
Tout se passe bien, mon IHM démarre, les transferts que j'ai géré avec des Invoke et delegate passe trés bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 private static IHMreleve.IMHReleve _IHMForm; public GestionReleve() { _IHMForm = new IHMreleve.IMHReleve(_PresenceSGBD); _IHM = new Thread(new ThreadStart(IHMStart)); _IHM.SetApartmentState(ApartmentState.STA); //Demarrage du thread IHM _IHM.Start(); } private static void IHMStart() { _IHMForm.ShowDialog(); }
Mon IHM est composé d'un tablecontrol, et au moment ou je vais dans l'onglet qui contient mon Zedgraph il me plante avec une exception :surOpération inter-threads non valide :
Le contrôle 'zedGraph1' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part _IHMForm.ShowDialog();
Pourtant mon Zedgraph est démarrer uniquement dans le thread IHM, je comprend pas pourquoi il me fait sa?
Auriez vous une idée, s'il vous plait?
Je sais que démarrer une Winform qui en démarre une autre c'est pas le top.
Je pensais au départ, démarrer un mode console mais l'élève n'a pas trouvé comment ne pas afficher la console. Et dans ce cas on aurait gérer le splashscreen par une autre moyen pour qu'il fasse que ca. Moi j'ai pas chercher cette solution de mon coté , 'occupant de l'IHM et vu que pourm le moment mes simulations marchaient, il y a juste Zedgraph qui m'embête.
Partager