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 :

STAThread qu'est ce que c'est?


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 251
    Points : 121
    Points
    121
    Par défaut STAThread qu'est ce que c'est?
    Bonjour.
    je cree une application console c#, et la classe qui m'est proposée par visual studio contient STAThread.
    comme je ne sais pas ce que cela signifie, je l'ai carrement supprimée.
    quelqu'un peut il me dire ce que STAThread signifie?

  2. #2
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    je ne sais pas ce que celà signifie mais c'est là que se trouve le Main() c'est a dire la méthode qui démarre mon application. je suis sûr qu'après que tu l'aies supprimé ton application ne s'exécute plus

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 251
    Points : 121
    Points
    121
    Par défaut
    elle continue de s'executer normalement.
    enfin, je crois.
    le seul probleme, c'est que je genere des nombres aleatoires, et j'ai bien peur que cet attribut que j'ai supprimé, vienne fausser la donne.

  4. #4
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Peux tu mettre le code que tu as supprimé?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 251
    Points : 121
    Points
    121
    Par défaut
    il n'ya pas de code.
    peut etre je m'exprime mal:
    je voudrais savoir à quoi sert exactement [STAThread].
    merci d'avance.

  6. #6
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    STAThreadAttribute, classe

    Ne supprime pas cet attribut.
    Si tu as une erreur dans ton application, je pense que cela vient plus de ton code.

    Bye

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Bonsoir,

    Le problème c'est que la doc MSDN n'est pas assez précise pour expliquer l'utilité de cet attribut.

    Le thread d'une WinForms doit toujours être marqué d'un attribut [STAThread].

    Le modèle STAThread signifie que tous les contrôles pour une WinForm seront gérés par un et un seul Thread. Au contraire pour le modèle MTAThread, la création d'un contrôle méne à la création d'un nouveau Thread. Le STAThread est choisi pour éviter les problèmes de conflits entre les différents Threads pouvant apparaître avec le modèle MTAThread.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 251
    Points : 121
    Points
    121
    Par défaut
    d'accord.
    je l'ai mis en commentaire.
    et comme j'ai une application du type console, pas de winform, est ce pour ça que l'application continue de tourner?
    ce que je veux dire, c'est que j'ai l'impression qu'en le mettant en commentaire, les fonctionnalités de mon application sont restées inchangées.

  9. #9
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Peut qu'oui, peut etre que non!je vais tester et t'en donner des nouvelles

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Points : 627
    Points
    627
    Par défaut
    Salut,

    le fait de marquer le point d'entrée d'un programme avec STAThread permet de lancer le thread principal (celui qui entrera dans le main) avec l'appartment STA. La notion d'appartment provient de COM, et permet de restreindre l'utilisation d'un objet à un seul thread. Winform a hérité de ses appartment, d'où l'obligation d'utiliser un thread STA pour travailler avec des forms.

    Bref, quand tu développes une appli Winform, tout les threads touchant à de l'UI doivent être en STA (par défaut un thread managé est en MTA, d'où les problèmes quand on touche à de l'UI sur un thread du pool). Pour la console, en gros, ça n'a pas d'importance (d'ailleurs en faisant un nouveau projet console, l'attribut n'est pas placé).

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 251
    Points : 121
    Points
    121
    Par défaut
    ok.
    merci pour tous ces details

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

Discussions similaires

  1. est-ce que python est ce que je cherche
    Par SILICONE dans le forum Général Python
    Réponses: 5
    Dernier message: 21/12/2007, 15h23
  2. Qu'est ce que c'est qu'un Trigger ?
    Par shingo dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/10/2003, 23h09
  3. Un daemon qu'est ce que c'est exactement ?
    Par CedricYhuel dans le forum Administration système
    Réponses: 5
    Dernier message: 01/08/2003, 12h56
  4. Qu'est ce que c'est : Le GateA20 ?
    Par le mage tophinus dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 24/02/2003, 16h09
  5. Qu'est-ce que c'est que Nessus, ça fait quoi exactement ?
    Par PeterT dans le forum Développement
    Réponses: 3
    Dernier message: 24/07/2002, 12h23

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