他のクラス B、C などにビットマップを提供するクラス A があります。
クラス A はビットマップをリング キューに保持するため、しばらくするとビットマップへの参照が失われます。
まだキューにある間に、同じ Bitmap を複数のクラスでチェックアウトできるため、たとえば、B と C の両方がこの同じ Bitmap への参照を保持できます。しかし、そのうちの 1 つだけが Bitmap をチェックアウトしたか、または 1 つもチェックアウトしていないこともあり得ます。
A、B、または C のいずれかでビットマップが不要になったら、ビットマップを破棄したいと思います。
B と C が使用を終えたときに何らかの形で信号を送る責任を負うようにする必要があると思いますが、全体的なロジックについてはわかりません。
この例では、3 回呼び出される DisposeIfNowOrphan() のような呼び出しである必要があります。
1 - ビットマップがクラス A のキューから追い出されたとき
2 - B が使い終わったとき
3 - C が終了したとき
それが最善の戦略である場合、孤立状態をどのように評価できますか?
どんなアドバイスでも大歓迎です。