Cześć,
w jaki sposób mogę zwolnić zasoby?
Obiekty klasy MyData tworzę wielokrotnie w trakcie wykonywania pętli. Wydawało mi się, że po przejściu iteracji pętli wszystkie obiekty są usuwane automatycznie przez garbage collector (skoro są zmiennymi lokalnymi wewnątrz nawiasów klamrowych). Tak jednak nie jest (ponieważ, gdy jest np. powyżej tysięcznej iteracji, aplikacja znacząco zwalnia wykonywanie kolejnych iteracji). Stąd też chciałbym we właściwy sposób zaimplementować zwalnianie zasobów. W jaki sposób mogę to zrobić? (To nie są listy generyczne, więc inne sposoby, których próbowałem, nie powiodły się). Mogę też pokazać kod tego, czego próbowałem, jednak podejrzewam, że niewiele on wniesie nowego do tematu.
public class MyIntegerColumn
{
public string ParameterName { get; set; }
public int ParameterValue { get; set; }
public MyIntegerColumn() { }
public MyIntegerColumn(string parameterName, int parameterValue)
{
ParameterName = parameterName;
ParameterValue = parameterValue;
}
}
public class MyData
{
public List<MyStringColumn> MyStringColumns { get; set; }
public List<MyDoubleColumn> MyDoubleColumns { get; set; }
public List<MyDateColumn> MyDateColumns { get; set; }
public List<MyIntegerColumn> MyIntegerColumns { get; set; }
public List<MyBooleanColumn> MyBooleanColumns { get; set; }
public MyData()
{
MyStringColumns = new List<MyStringColumn>();
MyDoubleColumns = new List<MyDoubleColumn>();
MyDateColumns = new List<MyDateColumn>();
MyIntegerColumns = new List<MyIntegerColumn>();
MyBooleanColumns = new List<MyBooleanColumn>();
}
~MyData()
{
// ???
}
public void Dispose()
{
// ???
}
}
Pozdrawiam!