Meilleur auteur de réponses
Mon application se crashe sans autre forme de procès

Question
-
Bonjour,
Mon appli C#, lancée en mode debug sous Visual Studio 2010, crashe sans bruit. Pas de message, alors que j'ai un try/catch global. Je soupconne un pb de RAM (le processus atteint 600 Mo de RAM avant le crash). Comment puis-je en être certain et trouver l'origine de ce problème ?
Cordialement
Philippe
Réponses
-
Il suffisait d'ajouter un Dispose à l'objet créé par l'appel au composant COM dans un bloc finally.
Donc c'est réglé. Merci de votre attention.
Philippe- Marqué comme réponse PhilTheGap jeudi 17 mars 2011 10:11
Toutes les réponses
-
Bon je crois avoir trouvé le problème. Ca se passe sur une boucle sur une DataTable:
foreach (DataRow dataRow in catalogCardDataTable.Rows)
{}A chaque passage dans la boucle, la RAM du processus augmente. Pourtant, elle ne devrait pas puisque le GC devrait libérer les ressources du DataRow précédent avant d'allouer celle du DataRow courant. Le DataRow n'est pas référencé ailleurs...
Comment puis-je faire ?
Cordialement
Philippe -
J'ai trouvé l'origine du problème. J'utilise une méthode dans la boucle qui fait appel à un composant COM. Si je supprime cet appel, alors je n'ai plus de problème la mémoire reste stable.
Donc maintenant j'ai au autre souci, comme gérer la mémoire non managée. Si vous avez des pistes...
Philippe -
Il suffisait d'ajouter un Dispose à l'objet créé par l'appel au composant COM dans un bloc finally.
Donc c'est réglé. Merci de votre attention.
Philippe- Marqué comme réponse PhilTheGap jeudi 17 mars 2011 10:11