Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Threads [ Windows / Autre ] (zebobo5)

mardi 6 novembre 2007 à 17:41:37 | Threads

zebobo5

Membre Club
Salut à tous,

Soit 2 formulaire f1 et f2.

f1 est créé et affiché dans le thread principal.

On lance une méthode m1 de f1, puis le thread principal se met en WaitOne() avec un ManualResetEvent.

m1 qui crée un thread qui crée f2, et enfin un ShowDialog

Question : Comment faire pour que ce f2.ShowDialog(f1) dans m1 passe sans problèmes de thread et d'accès à f1

PS : L'application doit normalement se bloquer après le ShowDialog, mais là n'est pas le problème.

Finalement le plus simple c'est de vous mettre un bout de code test...

Code exemple :

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ManualResetEvent mre = new ManualResetEvent(false);
            Form1 f1 = new Form1();
            f1.Text = "F1";
            f1.Load +=
                delegate
                    {
                        Thread t2 = new Thread(
                            delegate ()
                                {
                                    Form2 f2 = new Form2();
                                    f2.Text = "F2";
                                    f2.Load +=
                                        delegate
                                            {
                                                mre.Set();
                                            };
                                    f2.ShowDialog(f1);
                                });
                        t2.Start();
                        mre.WaitOne();
                    };

            Application.Run(f1);
        }
        internal class Form1 : Form
        { }
        internal class Form2 : Form
        { }



ZeBobo5
N'oubliez pas de cloturer votre post.


mardi 6 novembre 2007 à 18:54:46 | Re : Threads

niky

Membre Club
Perso, je me débrouillerai pour faire en sorte que f1 et f2 s'exécutent dans le même thread. Par exemple, en créant une méthode CreateF2 dans Form1 :

void CreateF2()
{
    // Vrai si l'appel a été fait dans un autre thread que le thread dans lequel a été créé "this"
    if (this.InvokeRequired())
    {
       this.Invoke(...); // Regarder la syntaxe dans la doc pour invoquer CreateF2.
    }
    else
    {
       f2 = new Form2();
       // ... tout le reste du code de chargement de f2
    }
}

Cordialement.

mardi 6 novembre 2007 à 20:27:47 | Re : Threads

Bidou

Administrateur CodeS-SourceS
Hello,
L'interface graphique doit être gérée dans un seul  thread, sinon c'est problèmeS en ligne de mire assurés !



-My Blog-

mercredi 7 novembre 2007 à 11:35:29 | Re : Threads

zebobo5

Membre Club
ReBonjour,

Donc si j'ai bien compris, il faut que je fasse mon ShowDialog, voir même un Show dans mon thread principal...
Pas cool...


ZeBobo5



Cette discussion est classé dans : application, thread, m1, f2, f1


Répondre à ce message

Sujets en rapport avec ce message

[C# 2.0] Problemes de thread [ par MorpionMx ] Bonjour a tous. Je suis en train de faire une classe qui fourni une connexion a une base de données pour mon application, et qui lui permet aussi de Focus d'une form? [ par Bidou ] Bonjour,Petite question :J'ai deux forms, disons f1 et f2. J'ouvre f2 depuis f1 en faisant un ShowDialog().Ma form f2 possède une référence de f1, ce Gif + Thread [ par emmanuel9 ] Bonjour à tous, J'ai une application qui possède un bouton exporter et les traitement effectué lors de l'appui sur ce bouton gele l'appli pendant un t pb: ou placer un thread???? [ par othland ] slt tlm;c'est la première fois que je travaille avec des thread sous visual C#.j'ai un programme qui gère plusieurs fenêtres...etc.je veux qu'en paral Global variables [ par lefty06 ] bonjour, ma question en suprendra peut etre plus d'un car elle paraitra peut etre idiote.Mon probleme consiste en une application windows, ma solution Un ignare doit faire un thread... [ par vanpetitprince ] Bonjour a tous, Je suis en stage et je dois faire une application en windows mobile ce 5.0 en C#. Comme le titre l'indique si bien je ne connais abso MultiThread & Fonction bloquante [ par ouaipdu53 ] Bonjour , Dans le cadre de la réalisation d'un logiciel de supervision, je dois crée une application multi-clients. Pour gérer cela, chaque client pos Thread + textbox [ par drcmomo ] Bonjour tout le monde,j'aimerais pourvoir afficher des données dans 1 textbox en utilisant un Thread, quand je lance mon application il m'affiche le m kill thread [ par kulinicm ] bonjour,je n'arrive pas a tuer mon thread,je fait bien a la fin de mon appli: this.Close();this.MonThread.Abort();App Thread Viewer [ par gama71 ] Bonjour, je voudrais savoir si quelquun connais un outils qui me permettrait de visualiser les threads qui torune en mémoire.J'ai une application qui


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.