2010-02-03 20 views
3

Dans notre programme, vous pouvez sélectionner un type de document dans une liste, puis cliquer sur OK ou double-cliquer sur l'élément sélectionné et un nouveau document Maintenant, le problème est que, parfois, en mode de version seulement, lorsque vous double-cliquez sur un élément, l'application se bloque Vous pouvez toujours déplacer les fenêtres, et tout est repeint, mais il n'y a pas de réponse quoi que ce soit ... En mode débogage, il n'y a pas de problème du tout ... Aussi, la plupart du temps tout fonctionne bien ??? Il n'y a aucune information d'erreur affichée ... tout ce que nous pouvons faire est de terminer le processus ...NET App Se bloque uniquement en mode Release, parfois ... :-(

Comment pouvons-nous f Indiquer ce qui cause le blocage?

+0

est-ce une application multi-thread? pourrait-il y avoir une impasse quelque part? – Naveen

Répondre

2

Dans Visual Studio, utilisez Outils + Attacher au processus et sélectionnez votre programme. Si nécessaire, utilisez Debug + Windows + Threads pour sélectionner un thread. Déboguer + Rompre tout, regardez la pile des appels pour voir où elle est bloquée.

+0

Merci nobugz - c'est tout! .... J'ai 1 thread principal, et 7 fils de travail. Le thread principal semble être l'accès à une ressource (fichiers de traduction): mscorlib.dll System.Resources.RuntimeResourceSet.GetString (touche string, bool ignoreCase) + 0x12 octets \t ........ .. le seul thread de travail avec le code semble attendre (sur le thread principal?) \t [Dans un sommeil, attendez, ou rejoindre] \t mscorlib.dll! System.Threading.WaitHandle.WaitOne (délai d'attente à long , bool exitContext) + 0x2f octets Cela signifie-t-il que l'application attend le chargement d'une ressource? –

+0

Apparemment, très étrange. Copiez et collez l'ensemble de la trace de la pile dans votre question. –

3

Avez-vous introduit la journalisation? Vous pouvez utiliser par exemple log4net pour le faire. En combinaison avec PostSharp, vous pouvez rapidement ajouter un enregistrement pour toutes les entrées/sorties de la méthode et voir si quelque chose est en train de se passer. Il y a même un projet appelé Log4PostSharp, mais je n'ai jamais essayé.

+0

+1 pour avoir mentionné PostSharp - je ne l'ai jamais su! Merci :) – t0mm13b