IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#] Pb thread Main


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Par défaut [C#] Pb thread Main
    Salut!

    Je rencontre un problème de dingue...

    Mon programme fonctionne lorsque je place ma ligne de code au sein de l'évènement du clic de souris.

    Par contre si je mets cette même ligne de code dans un event que je créé, la ligne de code est exécutée EXACTEMENT comme avant mais mon programme ne marche pas !!

    Voici les lignes essentielles :

    CAS 1 : Exemple qui marche :
    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
    23
     
            public Fenetre()
            {
                InitializeComponent();
            }
     
            /// <summary>
            ///     The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                SpeechRecoManager.CallApplication += new SpeechEventHandler(SpeechRecoManager_CallApplication);
                SpeechRecoManager.Hypothesis += new SpeechEventHandler(SpeechRecoManager_Hypothesis);
     
                fenetre = new Fenetre();
                Application.Run(fenetre);
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                Configuration("application");
            }

    CAS 2 : Exemple qui "ne marche pas" :
    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
    23
    24
     
            public Fenetre()
            {
                InitializeComponent();
            }
     
            /// <summary>
            ///     The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                SpeechRecoManager.CallApplication += new SpeechEventHandler(SpeechRecoManager_CallApplication);
                SpeechRecoManager.Hypothesis += new SpeechEventHandler(SpeechRecoManager_Hypothesis);
                Message.Request += new ConfigureAppEventHandler(Request);
     
                fenetre = new Fenetre();
                Application.Run(fenetre);
            }
     
            public static void Request(string app, string id)
            {
                Configuration("application");
            }

    La méthode Configuration permet de créer une structure de donnée.
    Elle est rigoureusement identique dans les 2 cas.

    Y a-t-il une particularité des Windows Form sur la gestion d'event ou même de thread ?


    D'avance, merci de vos nombreuses réponses !

    Go

  2. #2
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Ca veut dire quoi "mon programme ne marche pas" en langage de développeur ?

    Tu colles un handler d'évènement avant le Application.Run ? curieux...

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Par défaut
    En fait au meme endroit que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Message.Request += new ConfigureAppEventHandler(Request);
    j'active d'autres événements qui permettent la reconnaissance vocale (SAPI)
    et qui fonctionne lorsque je suis dans le CAS 1.

    Par contre dans le CAS 2 ils ne fonctionnent pas.

    où aurais tu mis les eventhandler ?

  4. #4
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Citation Envoyé par Goduak
    où aurais tu mis les eventhandler ?
    En winform, on fait de la programmation évènementielle.
    Le programme à proprement parler commence donc au moment où la fenêtre principale est créé.
    J'aurai donc collé mes handlers très logiquement au début de mon programme : dans le constructeur de Fenetre.

    Il faut savoir que la pompe à messages, coeur de la programmation évènementielle, n'est lancée que lorsque tu as fait ton Application.Run.
    Après ça dépend comment fonctionne ta classe Message.

    Sinon t'as pas répondu à la question : ça veut dire quoi "mon programme ne fonctionne pas" en langage de développeur.

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 53
    Par défaut
    Ok merci pour le conseil.

    Pour en revenir à la question principale, quand je dis que "mon programme ne marche pas" c'est qu'il démarre, il me créé ma structure de données grâce à la méthode Configuration ( CAS 1 et CAS 2 ) mais les événements de reconnaissance vocale ne fonctionnent pas dans mon CAS 2.

    Ce qui est troublant c'est que le code est presque identique et que le CAS 1 fonctionne très bien...

  6. #6
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    Salut .

    Plusieur questions :

    - C'est quoi la classe Message ?
    - Tu es sur que l'vènement Request est levé ?

  7. #7
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Citation Envoyé par Goduak
    mais les événements de reconnaissance vocale ne fonctionnent pas dans mon CAS 2.
    mmmmm... tu te fous de moi ?
    Ca veut dire quoi "ne fonctionne pas" ?
    Ils ne sont pas appelés ? Ils lancent une exceptions ? Y'a windows qui reboote ?

Discussions similaires

  1. Exception in thread main ! (Java+MySQL)
    Par condor_01 dans le forum Général Java
    Réponses: 12
    Dernier message: 24/04/2008, 10h25
  2. Exception in thread "main" java.lang.NullPointerException
    Par yrlac dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 24/05/2007, 18h19
  3. erreur:Exception in thread main
    Par milsum dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 26/07/2006, 16h34
  4. [Classpath]Exception in thread "main" NoClassDefFound
    Par let_me_in dans le forum Général Java
    Réponses: 24
    Dernier message: 24/01/2006, 21h28
  5. Exception in thread "main" java.lang.ArrayIndexOut
    Par Poseidon62 dans le forum Concurrence et multi-thread
    Réponses: 6
    Dernier message: 04/11/2005, 02h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo