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 :

Application marquée [STAThread] demarre en MTA !


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 21
    Points
    21
    Par défaut Application marquée [STAThread] demarre en MTA !
    Bonjour,

    La Form d'entrée de mon application est une MDI Form.

    Le debut de sa methode main est:


    {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    	static void Main()(string args[]
    (
    ....
    )
    Lorsque je regarde l'etat de System.Threading.Thread.CurrentThread.ApartmentState

    J'obtiens MTA

    Bien sur je ne peux pas changer l'appartment state, il n'est pas modifiable....

    Je ne comprends pas comment cela est possible.. que fait je de mal ?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 62
    Points
    62
    Par défaut Threads... MTA & STA...
    Bonjour,

    je ne suis pas complétement sûr que le code contenu dans votre STAThread ne lance pas un modèle MTA...

    Normalement vous devez exécuter dans ce STA une méthode Application.Run(...) qui je pense doit lancer un MTA.

    Cordialement.

    Guillaume MARQUES

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    si j'ecris le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    	static void Main()(string args[]
    (
    System.Threading.Thread.CurrentThread.ApartmentState
    .....
    )
    je vois que le ApartmenentState est MTA... je ne comprends pas

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Points : 62
    Points
    62
    Par défaut Sta / Mta
    Je viens de faire un essai, et chez moi, cela fonctionne.

    Vous pouvez aussi forcer le Model:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Threading.Thread.CurrentThread.ApartmentState = System.Threading.ApartmentState.STA;
    Cordialement.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 36
    Points : 21
    Points
    21
    Par défaut
    Bon, finalement, on a résolu comme çà :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.Threading.Thread theThread = new System.Threading.Thread(new System.Threading.ThreadStart(RunMyApplication));
    theThread.SetApartmentState(System.Threading.ApartmentState.STA);
    theThread.Start();
    Et ce qui etait dans le main avant est dans RunMyapplication......

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/02/2008, 18h49
  2. Réponses: 6
    Dernier message: 19/10/2007, 14h02
  3. Réponses: 2
    Dernier message: 09/05/2007, 14h30
  4. demarrer avec une application
    Par lastrecrue dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 15/07/2006, 17h14
  5. [C#] Comment demarrer une application silencieuse ?
    Par iowa dans le forum Windows Forms
    Réponses: 10
    Dernier message: 05/02/2006, 19h59

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