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:

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();
        }
Tout se passe bien, mon IHM démarre, les transferts que j'ai géré avec des Invoke et delegate passe trés bien.

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 :
Opé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éé.
sur
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.