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 :

Problème de ContextSwitchDeadLock


Sujet :

Windows Forms

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut Problème de ContextSwitchDeadLock
    Amis développeurs, bonjour !

    Tout d'abord, je sais que ce genre de sujets a déjà été créé mais ils ne répondent pas réellement à ma question. Après avoir vu les différents problèmes, j'ai bien compris qu'il y a une saturation du système en raison de l'utilisation de processus qui ne se ferment pas correctement ou qui ne sont pas fermés. Comme il a été dit, ce message d'erreur :

    Le CLR n'a pas pu effectuer de transition du contexte COM 0x165f58 au contexte COM 0x1660c8 pendant 60 secondes. Le thread qui possède le contexte/cloisonnement de destination est probablement en train d'attendre ou de traiter une opération très longue sans pompage des messages Windows. Cette situation a généralement des effets négatifs sur les performances et peut parfois entraîner le blocage de l'application ou une utilisation ininterrompue de la mémoire. Pour éviter ce problème, tous les threads STA (Single Threaded Apartment) doivent utiliser des primitives d'attente de pompage (par exemple CoWaitForMultipleHandles) et pomper de manière régulière les messages lors des opérations qui sont longues à s'exécuter.
    peut être désactivé dans le menu : Déboguer -> Exceptions, et on décoche cette exception comme sur l'image suivante :



    La désactivation de cette exception n'influence en rien l'exécution du programme. Le message affiché n'est là que pour informer le développeur, en mode débug, que son application pourrait rencontrée des ralentissements, dans certaines situations, lorsque celle-ci sera finalisée et installée.

    Je fais juste un petit rappel, histoire que d'autres personnes ne posent pas la question ^^ Cela permet de regrouper l'ensemble des messages déjà existants.

    Donc j'en viens à ma petite question, savez-vous comment vous servir des fameuses primitives de pompage ? Je n'arrive pas à trouver de solution sur le net pour m'en servir.

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 310
    Points : 347
    Points
    347
    Par défaut
    Bon il semblerait que j'ai résolu par moi-même mon problème après une recherche un peu longue ...

    Les soucis que j'ai pu rencontrer venaient du fait que j'exécute énormément de requêtes et que j'ouvre une fenêtre dont j'actualise un des labels pour m'indiquer le traitement en cours. Toutes ces manipulations s'effectuent dans plusieurs While (C'est bourrin comme programmation mais je bosse sur un logiciel fait avec des moufles...et je ne peux pas rectifier l'architecture de la BDD...)

    En recherchant, je suis tombé sur cela :

    Cette ligne spécifie à Windows de traiter tous les messages dans la file d'attente. Il faut la placer au début des While qui peuvent poser problème dans l'exécution.

    Un petit lien vers MSDN :
    http://msdn.microsoft.com/fr-fr/libr...8VS.80%29.aspx

    Voilou, j'espère que cela en aidera quelques uns

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

Discussions similaires

  1. Problème de ContextSwitchDeadLock
    Par zaghi dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/09/2012, 10h24
  2. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  3. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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