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

Développement Windows Discussion :

[C#] multithread et gestion des exceptions


Sujet :

Développement Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [C#] multithread et gestion des exceptions
    Bonjour

    Comment gérez-vous les exceptions dans le cas d'exécution multi-thread ? Une exception qui ne serait pas gérée dans le thread dans lequel elle est levée provoquera une UnhandledException. Il faut donc obligatoirement la traiter dans ce thread. Mais comment faire pour avertir l'utilisateur (par une messageBox par exemple) ?

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    tu l'a dit toi meme il y a un moyen de catcher les UnhandledException sur un thread en "handlant" l'event associé sur le thread.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Disons que je me demandais s'il y avait un autre moyen que de laisser ce type d'exception être levée. Mais allons-y avec ça.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bon, pas sûr que ça fonctionne dans mon cas. Mon application est en WPF et voici ce que j'ai trouvé ici : http://msdn.microsoft.com/fr-fr/libr...exception.aspx

    Il est dit :

    Si une exception n'est pas gérée sur un thread interface utilisateur (UI) d'arrière-plan (thread avec son propre Dispatcher) ou un thread de travail d'arrière-plan (thread sans Dispatcher), l'exception n'est pas envoyée au thread d'interface utilisateur principal.Par conséquent, la DispatcherUnhandledException n'est pas levée.Dans de tels cas, vous devrez écrire le code pour effectuer les opérations suivantes :

    1. Gérer des exceptions sur le thread d'arrière-plan.
    2. Distribuer ces exceptions au thread d'interface utilisateur principal.
    3. Lever à nouveau des exceptions sur le thread d'interface utilisateur principal sans les gérer afin de permettre la levée de la DispatcherUnhandledException.
    Donc si j'ai bien compris, il faut que je gère l'exception dans mon thread. Puis que je la fasse remonter vers l'interface. Bref que je définisse mon propre événement UnhandledException.

    Je vais voir ce que ça donne.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Ou faire en sorte que le thread ne soit pas un thread d'arrière-plan.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Disons que si je lance un traitement en arrière plan c'est qu'il y a une raison . Le but étant d'éviter de bloquer l'UI pendant son exécution (qui peut durer plusieurs minutes).

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

Discussions similaires

  1. [ADOConnect] gestion des exception en tout temps
    Par portu dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/04/2005, 19h01
  2. [ORACLE 9i] Gestion des exceptions
    Par sygale dans le forum SQL
    Réponses: 6
    Dernier message: 19/08/2004, 15h06
  3. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/06/2004, 17h25
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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