IDictionary インスタンス メンバーを介して他のクラスへの参照を保持するクラスがいくつかあります。
そのようです:
class A
{
private readonly Dictionary<int, B> _particles = new Dictionary<int, B>();
public void CreateNewB(int someInt)
{
var b = new B();
if (!_particles.ContainsKey(someInt)
_particles.Add(someInt, b);
}
}
これがセットアップであり、この辞書からそれらを削除することは決してありませんが、何らかの理由で、クラス B のデストラクタが GC の実行で時々呼び出され、その理由がわかりません。
Dictionary クラスが新しい参照を追加する方法と関係があるのでしょうか?
固定:
わかりました、あなたの答えをありがとう、私は確かに今GCとデコンストラクターについて大きな理解を得ています.
しかし、問題は私自身のものでした.someIntがまだ存在しない場合にのみ追加し、ビジネスロジックに欠陥があるため、someIntは常に1だったので、初めて機能し、デコンストラクターが呼び出されませんでした. しかし、2 回目は "b" インスタンスがリストに追加されず、GC 実行でクリーンアップされました。
助けてくれたすべての人にもう一度感謝します!