Thread qui créé des fenêtes

bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 23 déc. 2008 à 17:54
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 26 déc. 2008 à 19:22
Bonjour,

J'ai un thread qui créé des fenêtres. Ces fenêtes sont ajoutées dans une liste de forms pour que je garde trace de leur créations. Le truc c'est que quand ce thread meurt, les fenêtres sont fermées automatiquement et moi j'aimerai bien pouvoir réutiliser ces fenêtres dans un autre thread (via la liste de fenêtres construite à leur création).

Comment faire?

4 réponses

bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
23 déc. 2008 à 18:24
Erf le titre mais impossible d'editer...

Autre question: est-il possible de créer ces fenêtres en les faisant passer pour ayant été créées dans un autre thread (ce qui règlerait le probleme et me simplifierait la tache :p)
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
23 déc. 2008 à 22:36
Un Thread ne doit pas créer de fenêtre ! C'est le thread principale et lui seul qui créer les éléments graphiques, sinon confusion garantie...

<hr />
-Blog-
-Site Perso-
0
bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 4
23 déc. 2008 à 23:03
Bein disons que ca m'arrange pas, parceque le thread de l'appli qui gère l'interface est vraiment complètement séparable de l'autre thread qui créé les fenêtres.

Mais j'ai trouvé une parade:
Le thread 1 empile des infos
Le thread 2 check la liste, si ya des infos il créé les fenêtres que le thread 1 créaient avant directement et dépile.

(le tout avec un lock qui va bien sur la liste partagée entres les 2 threads). Je perds un peu en réactivité (le thread 2 pool la liste ttes les 100ms, alors qu'avant c'était direct), mais ca me permet de me sortir de là.
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
26 déc. 2008 à 19:22
Bonsoir

Utilise un évenement plutot qu'un pooling.
le thread qui crée les "forms" generer l'evenement, le thread qui veut les utiliser s'abonne à l'évenement.

mais je suis d'accord avec bidou, il vaudrait mieux que les "forms" soient créées par le thread principal.
là encore utilise un delegate, pour que ton thread deamande la création des forms au thread principal

C# is amazing, enjoy it!
0
Rejoignez-nous