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

C# Discussion :

Problème : Le thread actuel doit être en mode STA


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Par défaut Problème : Le thread actuel doit être en mode STA
    Bonjour,

    Voici l'erreur que j'ai :
    "Le thread actuel doit être en mode STA (Single Thread Apartment) avant que des appels OLE puissent être effectués. Assurez-vous que votre fonction Main est marquée comme STAThreadAttribute".

    Voici le contenu de program.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Authentification());          
            }
    Dans une partie de mon application (de messagerie instantannée) je crée un nouveau Thread et j'ouvre une Form Message dedans de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            //Thread pour l'ouverture de la fenetre message
            Thread monthread;
            MyThread mythread;
     
            //ouverture de la fenêtre message dans un nouveau thread
            message = new Message(this);
            mythread = new MyThread(message);
            monthread = new Thread(new ThreadStart(mythread.run));
            monthread.Start();
    Et dans cette fenêtre Message j'ai un bouton pour envoyé un fichier qui est censé ouvrir un openfiledialog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
                {
                    // Fichier sélectionné
                    chemin = openFileDialog1.FileName.ToString();
                }
    Et c'est à ce moment là que j'ai l'erreur.
    Alors c'est vrai que j'ai bien le
    avant le Main mais le main n'ouvre pas directement ma form message donc peut être qu'il faut le lui dire autrement...

    J'espère avoir été clair en tout cas n'hésitez pas pour de plus ample informations.

    Merçi

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 39
    Par défaut
    Il suffisait lorsque je créer le thread de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monthread.SetApartmentState(ApartmentState.STA);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MVVM: Erreur thread appelant doit être en mode STA
    Par Oberown dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 05/12/2010, 15h20
  2. RESTORE DATABASE doit être utilisé en mode mono-utilisateur
    Par jeandadaf dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/06/2009, 23h43
  3. Réponses: 8
    Dernier message: 04/06/2009, 13h01
  4. "MonProg.EXE" a rencontré un problème et doit être fermé
    Par guilld dans le forum Windows Forms
    Réponses: 24
    Dernier message: 29/01/2009, 14h43
  5. xx a rencontré un problème et doit être fermé
    Par AP dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/01/2009, 11h43

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