0

Dans mon projet Silverlight, j'ai un thread qui se déclenche toutes les x millisecondes. Dans ce fil, j'essayais de changer l'état de l'application. Cela ne fonctionnait pas et je ne savais pas pourquoi, alors mettez un point d'arrêt dans le rappel de Timer. Le point d'arrêt a été atteint, mais la minute où j'ai tenté de changer l'état, il a juste quitté la fonction (en supposant qu'une exception a été levée).Get Visual Studio pour lancer des exceptions sur les threads

Je sais pourquoi l'erreur s'est produite - vous ne pouvez pas changer les choses GUI via un thread non-GUI.

Ma question est: comment puis-je faire en sorte que Visual Studio se casse quand une telle exception se produit? (Plutôt que de renflouer silencieusement, ce qui ne m'avertit pas s'il y a un problème).

J'ai essayé le "Pause lorsque les exceptions traversent AppDomain ou les frontières gérées/natives", mais cela n'a eu aucun effet.

Répondre

4

Pouvez-vous modifier la gestion des ruptures pour InvalidOperationException afin qu'il casse immédiatement plutôt que seulement s'il n'est pas géré?

+0

Comment pouvez-vous faire cela? –

+0

Menu Déboguer -> Exceptions -> Exceptions CLR -> Système -> System.InvalidOperationException: cochez la case dans la colonne "Thrown". Vous pouvez avoir des faux positifs, mais cela devrait (je crois) attraper le cas qui vous intéresse. –

+0

Merci John - Je savais qu'il y avait une place pour faire ça. Il a attrapé mon exception - mais pas où je m'y attendais! Le problème était que l'événement UnhandledException tirait, puis essayait d'afficher une boîte d'alerte, ce que vous ne pouvez pas faire dans un thread non-GUI. –

Questions connexes