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

 .NET Discussion :

Configuration des Threads


Sujet :

.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Par défaut Configuration des Threads
    Bonjour.

    J'ai créé une application qui lance actuellement une 20aine de threads.

    Sous visualStudio tout fonctionne parfaitement.
    Mais lorsque je lance l'application seule, tous les threads son bien créés, mais seuls 2 d'entre eux semblent être vivants (écriture dans un fichier log). Tous les autres semblent avoir gelé / disparu.

    Donc ma question est: Quelles sont les valeurs par défaut que visual Studio affecte aux threads qui font que ça marche en dev, et pas en production ???

    J'ai regardé le paramètre maxStackSize du constructeur. Si je met Int32.MaxValue, alors plus aucun thread n'est vivant, et si je met 1, alors je monte à 5 threads vivants (youpi).

    Le fait de configurer mes threads en MultiAppartementThread ne change rien.

    Quelqu'un a-t-il une idée à ce sujet ?

    Merci par avance.

  2. #2
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour.

    Par défaut il s'agit de 256ko. Cela dit, non seulement tu ne devrais pas chercher à t'en mêler à moins d'être sûr de ce que tu fais et, de toute façon, ton problème ne vient pas de là*, donc autant utiliser les constructeurs sans ce paramètre.

    Ton problème vient plutôt de ce que font tes threads. Vérifie soigneusement l'onglet output de VS, n'hésite pas à configurer la gestion des exceptions (Debug > Exceptions), place des breakpoints ou des "trace" ingénieux, etc... Mais ton erreur est sans doute beaucoup plus bête que tu ne l'imagines et jamais je n'ai observé de bug dû à la taille de la pile même dans des applis avec de très nombreux threads. Enfin, MultiApartmentThread ne concerne que le développement COM.

    * Le fait qu'en mettant des valeurs extrêmes tu vois le nombre de threads actifs changer ne signifie pas que ce soit la clé de ton problème : une taille de pile de 1 va donner une taille réelle de 65ko (arrondi au supérieur à la taille d'une page mémoire), une taille de pile maximale va entraîner un dépassement de capacité mémoire et une levée d'exception.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Par défaut
    Mon problème est que ça fonctionne tres bien en debug sous VS avec les paramètres par défaut, et que le comportement n'est plus du tout le même en execution sans VS.

    J'ai trouvé une solution alternative en remplaçant mes threads par des timers, mais si quelqu'un sait pourquoi la gestion des threads est différente sous VS et hors VS, je suis preneur de la réponse.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 194
    Par défaut
    La rapidité d'execution peut avoir des effets sur la gestion des threads

  5. #5
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Par défaut
    Ces threads s'exécutent de façon cyclique en moins de 1s avant de se mettre en pause pour 5 à 10 secondes.

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Pourquoi ne pas utiliser le threadpool?

Discussions similaires

  1. Configuration de lancement des threads
    Par mister3957 dans le forum Threads & Processus
    Réponses: 12
    Dernier message: 23/05/2015, 09h05
  2. Variable globale / Propriété des threads
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 03/10/2003, 10h49
  3. [JBUILDER 9][configuration des serveurs]
    Par bozo dans le forum JBuilder
    Réponses: 4
    Dernier message: 19/08/2003, 09h21
  4. [reseaux] Gestion des threads en perl
    Par totox17 dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 28/11/2002, 09h40
  5. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53

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