31

と呼ばれるPopulationリストがあります。これは非常に多くのポジションの優れたリストですが、ある時点で使用をやめます。リソースを解放するにはどうすればよいですか? 次に、これはコードの一部です。

 private List <BasePopulation> Population=new List <BasePopulation>();
 Population.SomeMethod();
 Population.Clear();

Clear メソッドを使用しましたが、機能しません。何か案が?

4

5 に答える 5

2

リストをクリアしてから、GC を呼び出してメモリから削除する必要があります。広範な方法で次のように:

public static void ClearMemory<T>(this List<T> lista)
{
    int identificador = GC.GetGeneration(lista);
    lista.Clear();
    GC.Collect(identificador, GCCollectionMode.Forced);
}
于 2019-10-25T14:33:57.197 に答える
-3

編集、廃棄に関する私の答えを言い換えます。わかりました、Clean と入力したとき、私は物事を想像していたに違いありません。リストからすべてのアイテムをクリアしてもリソースが解放されない場合、解放しようとしているリソースは管理されていないと思います。その前提に基づいて、 IDisposable を実装するために BasePopulation が必要になるため、そのオブジェクトがガベージ コレクターによって取得されたときに、それらのリソースを解放できます。

http://msdn.microsoft.com/en-us/library/system.idisposable.aspx

于 2013-07-30T19:09:40.333 に答える