У меня есть класс A, предоставляющий растровые изображения другим классам B, C и т. Д.
Теперь класс A хранит свои растровые изображения в кольцевой очереди, поэтому через некоторое время он потеряет ссылку на растровое изображение.
Пока он все еще находится в очереди, несколько классов могут проверять одно и то же растровое изображение, так что, скажем, B и C могут содержать ссылку на одно и то же растровое изображение. Но может также случиться, что только один из них извлечет растровое изображение или даже ни один из них.
Я бы хотел избавиться от растрового изображения, когда оно больше не нужно ни A, B, ни C.
Полагаю, я должен заставить B и C отвечать за то, чтобы как-то сигнализировать, когда они закончили использовать его, но я не уверен в общей логике.
Если это будет вызов чего-то типа DisposeIfNowOrphan (), который будет вызван, в этом примере, три раза:
1 - когда растровое изображение выбрасывается из очереди в классе A
2 - когда B закончил с этим
3 - когда C закончил с этим
Если это лучшая стратегия, как я могу оценить состояние сирот?
Любой совет будет приветствоваться.