Fuites mémoire - objets COM
Bonjour à tous,
J'ai un soucis de fuites mémoire dans mon appli C# qui semble lié au fait que je fais appel à une API qui me renvoie une liste d'objets COM.
Ci-dessous un exemple simplifié de mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
public static ReadOnlyCollection<APICOMObject> GetBOObjectsByVolume(int iCounter)
{
MyAPIFilter oVolumeFilter = new MyAPIFilter(iCounter);
ReadOnlyCollection<BusinessObject> _retVal = oVolumeFilter.Apply();
}
ReadOnlyCollection<APICOMObject> _listeObj;
for (int icpt = 0; icpt < 1000; icpt++)
{
_listeObj = GetBOObjectsByVolume(icpt);
//GC.Collect();
//GC.WaitForPendingFinalizers();
//GC.Collect();
} |
A l’exécution, le code ci-dessus consomme de plus en plus de mémoire jusqu'à lever une exception "OutOfMemory". Par contre, si je décommente les lignes GC.*, l'utilisation de la mémoire reste stable.
Du coup, je ne sais pas trop comment gérer mon soucis de manière propre : il ne me semble pas très propre de forcer l'appel au garbage collector.
Merci d'avance...