Plantage du programme avec System.ObjectDisposedException

J’ai un problème bizarre avec mon programme. Je développe une application de formulaire Windows. Lorsque je le débogue par Visual Studio (F5), il fonctionne parfaitement mais lorsque j’exécute son exécutable, il se bloque et me donne “Une exception non gérée du type ‘System.ObjectDisposedException’ s’est produite dans mscorlib.dll”.

J’ai essayé de mettre un niveau supérieur (sur ma fonction extérieure) try / catch pour attraper cette exception, mais le programme se bloque toujours. Qu’est-ce que j’oublie ici?

Je n’ai pas téléchargé le code car je devais télécharger le code complet pour que vous puissiez voir où se trouvait le problème.

Wow, une exception ObjectDisposedException qui n’est pas interceptée par un bloc d’interception de niveau supérieur?

Je ne suis pas sûr de ce que je ferais dans ce cas – de toute évidence, vous voulez voir la trace de la stack et découvrir ce qui a été éliminé. Il existe quelques exceptions impossibles à attraper, mais celle-ci n’en fait pas partie. J’attacherais probablement un gestionnaire à l’événement AppDomain.UnhandledException et verrais si cela trouvait quelque chose.

Si vous pouvez obtenir le suivi de la stack de l’exception, cela devrait vous aider à déboguer la cause première. Vous pouvez trouver la fenêtre Pile d’appel utile pour cela. Consultez les instructions ici:

  • Comment: utiliser la fenêtre de stack d’appels .

Vous pouvez également désactiver l’option “Just My Code” pour le débogage dans Visual Studio. Cela peut vous donner de meilleures informations de débogage des exceptions. Suivez les instructions (pour désactiver ) ici:

  • Comment: entrer dans mon code seulement .