J'essaie d'écrire un simple gestionnaire de ressources pour le petit jeu de passe-temps que j'écris. L'une des tâches que ce gestionnaire de ressources doit effectuer consiste à décharger les ressources inutilisées. Je peux penser à faire de deux façons:C# - Obtenir le nombre de références à l'objet
Lorsqu'un objet ne nécessite plus de référence à la ressource, il doit appeler une méthode du Resource Manager pour signifier qu'il est plus l'utiliser; ou
Lorsqu'un objet ne nécessite plus une référence à la ressource, il suffit fixe à null. Ensuite, lorsque le gestionnaire de ressources est invité à décharger ressources inutilisées, il obtient le nombre de références (par réflexion?) De chaque ressource. Si le compte de référence est un (le gestionnaire de ressources va avoir une référence à la ressource), décharger la ressource.
Existe-t-il un moyen d'obtenir la deuxième solution en C#? Merci.
Que fera votre gestionnaire de ressources que le collecteur Garbace ne fait pas? – CannibalSmith
@CannibalSmith - généralement, permettre à plusieurs bits de code de réutiliser la ressource (essentiellement, un cache) –
Son pour le chargement des images, en s'assurant qu'une seule image est chargée à la fois (peu importe le nombre de choses le demandent, seulement une version peut être en mémoire). –