Objekte cachen

28/11/2008 - 17:56 von Robert Fuchs | Report spam
Kann man eigentlich einzelne Objekte oder auch Collections von Objekten (zB,
aus einer DB eingelesene Daten) für die gesamte Lebensdauer einer Appdomain
cachen?
Unter "cachen" verstehe ich hier, dass ich wàhrend der ganzen Laufzeit eines
Programmes auf die einmal beim Start instanzierten Objekte zugreifen kann,
ohne dass diese zwischendurch wieder von neuem instanziert werden müssen.

Mit anderen Worten: gibt es eine Möglichkeit, dem GC zu sagen, dass er
bestimmte Objekte "in Ruhe" lassen soll?

Ein Attribut wàre hier nett:

[GarbageCollection(false)]
public class MyClass: MyBaseClass
{}

Wenn nein, dann bleibt nur die ganzen Daten in Singletons zu kopieren, oder?

mfg Robert
 

Lesen sie die antworten

#1 Frank Dzaebel
28/11/2008 - 18:11 | Warnen spam
Hallo Robert,

gibt es eine Möglichkeit, dem GC zu sagen, dass
er bestimmte Objekte "in Ruhe" lassen soll?



[GC.KeepAlive-Methode (System)]
http://msdn.microsoft.com/de-de/lib...alive.aspx

Ggf. einige Regeln beachen, wie:

[GC.KeepAlive beim Verwenden systemeigener Ressourcen aufrufen]
http://msdn.microsoft.com/de-de/lib...82300.aspx

In einigen Fàllen kann man auch mit der:

[WeakReference-Klasse (System)]
http://msdn.microsoft.com/de-de/lib...rence.aspx

arbeiten, hierbei wird jedoch die Freigabe des Objektes
durch den GC nicht verhindert.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen