Gestion des exceptions non gérées sur des threads d'interface utilisateur secondaires, exemple
Mise à jour : novembre 2007
Cet exemple montre comment gérer des exceptions non gérées levées dans des threads d'interface utilisateur (UI) secondaires.
Cet exemple présente une fonctionnalité spécifique de Windows Presentation Foundation et, par conséquent, ne suit pas les meilleures pratiques de développement d'applications. Pour un traitement complet des meilleures pratiques de développement d'applications Windows Presentation Foundation (WPF) et Microsoft .NET Framework, reportez-vous, selon le cas, aux documents suivants :
Accessibilité - Meilleures pratiques d'accessibilité
Localisation - Vue d'ensemble de la globalisation et de la localisation WPF
Performances - Optimisation des performances des applications WPF
Sécurité - Sécurité de Windows Presentation Foundation
Génération de l'exemple
Installez le Kit de développement logiciel (SDK) Windows et ouvrez la fenêtre Commande de son environnement de génération. Dans le menu Démarrer, pointez sur Tous les programmes et sur Microsoft Windows SDK, puis cliquez sur CMD Shell.
Téléchargez l'exemple, généralement à partir de la documentation du Kit de développement logiciel (SDK), vers votre disque dur local.
Pour générer l'exemple à partir de la fenêtre Commande de l'environnement de génération, accédez au répertoire source de l'exemple. À l'invite de commandes, tapez MSBUILD.
Pour générer l'exemple dans Microsoft Visual Studio, chargez l'exemple de solution ou de fichier projet, puis appuyez sur CTRL+MAJ+B.
Exécution de l'exemple
Pour exécuter l'exemple compilé à partir de la fenêtre Commande de l'environnement de génération, exécutez le fichier .exe du dossier Bin\Debug ou Bin\Release contenu sous le dossier du code source de l'exemple.
Pour exécuter l'exemple compilé avec le débogage dans Visual Studio, appuyez sur F5.
Notes
Les applications WPF autonomes ou hébergées par un navigateur utilisent la classe Application pour détecter les exceptions non gérées (consultez DispatcherUnhandledException). Toutefois, Application peut détecter uniquement les exceptions non gérées levées dans le thread que la classe Application exécute. Généralement, une application a un thread d'interface utilisateur (UI) principal. Par conséquent, le comportement de la détection des exceptions non gérées de la classe Application est adéquat. Toutefois, les exceptions non gérées levées dans les threads secondaires ne sont pas détectées automatiquement par la classe Application dans le thread d'interface utilisateur principal.
Cet exemple montre comment retransmettre des exceptions non gérées des threads d'interface utilisateur secondaires au thread d'interface utilisateur principal, où elles peuvent être détectées par l'objet Application. Cette opération s'effectue en détectant les exceptions non gérées dans le thread d'interface utilisateur secondaire et en utilisant le Dispatcher pour les envoyer au thread d'interface utilisateur principal. Dans le thread d'interface utilisateur principal, elles sont levées une nouvelle fois pour que l'objet Application puisse les détecter.
Remarque : |
---|
Un thread d'interface utilisateur secondaire est un thread secondaire qui affiche l'interface utilisateur. |
Voir aussi
Tâches
Gestion des exceptions non gérées sur des threads de travail secondaires, exemple