Disons que j'ai une collection de classe qui contient une liste d'éléments.Dois-je m'inquiéter de libérer des ressources dans ce cas?
public class Collection
{
private List<Item> MyList;
//...
}
J'ai plusieurs instances de cette classe de collection qui ont toutes des listes de tâches différentes mais partagent des éléments. Par exemple: Il y a 10 articles, Collection1 références Articles 1-4, Collection2 a Articles 2-8 et Collection3 4,7,8 et 10 sur sa liste.
J'ai implémenté ceci comme suit: J'ai une liste globale qui contient tous les éléments disponibles. Avant de créer une nouvelle collection, je vérifie s'il y a déjà des éléments dont j'ai besoin dans cette liste - sinon je crée l'objet et je l'ajoute à la liste globale (et à la collection bien sûr). Le problème que je vois est que ces éléments ne seront jamais libérés - même si toutes les collections sont disparues, la mémoire qu'elles consomment n'est toujours pas libérée parce que la liste globale les référence toujours. Est-ce que c'est quelque chose dont je dois m'inquiéter? Si oui, que dois-je faire? J'ai pensé à ajouter un compteur à la liste globale pour voir quand un élément n'est plus nécessaire et supprimer sa référence.
Éditer: C'est en fait un problème de conception, je pense. Je vais rejeter l'idée d'une liste globale et à la place faire une boucle à travers toutes les collections et voir si elles ont déjà l'élément nécessaire.
Merci de mentionner les références faibles - je ne les connaissais pas. Mais je ne pense pas qu'ils sont pertinents pour mon problème. – CaptainProton