Hallo ihr Cracks,
Ich bin nun soweit mit meiner Anwendung fertig.
Nun habe ich noch was von der Automatischen Speicherverwaltung gelesen.
Diese würde ich gerne einbringen, denn die Anwendung soll auf einem Micropc laufen der nicht gerade viel Arbeitsspeicher zur Verfügung hat.
Zum testen der Funktion habe ich ein Programmcode kopiert und gehofft das ich in der Leistungsüberwachung irgend etwas feststellen kann.
Leider ohne erfolg.
Der benötigte Speicher wird immer mehr mit jedem Aufruf von der Funktion.
Kann mir einer dies mal erklären?
Ich habe im Internet zwar gesucht, werde aber irgendwie daraus nicht schlau, wie ich das anstellen muss um den Speicher wieder freigegeben zu bekommen.
Hier der code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67:
| namespace GoloRoden.GuideToCSharp { public class Foo : IDisposable { private bool _isDisposed;
~Foo() { this.Dispose(false); }
private void Dispose(bool isDisposeByUser) { if (isDisposeByUser) { }
GC.SuppressFinalize(this);
this._isDisposed = true; }
public void Dispose() { if (this._isDisposed) { throw new ObjectDisposedException( this.ToString()); }
this.Dispose(true); } } } |
und in Main
C#-Quelltext
1: 2: 3: 4: 5:
| using (GoloRoden.GuideToCSharp.Foo foo = new GoloRoden.GuideToCSharp.Foo()) { } |