Eliminazione dinamica oggetti

martedì 30 maggio 2006 - 17.39

Carlik Profilo | Junior Member

Salve a tutti...

Come faccio a eliminare dei pulsanti creati in maniera dinamica?
Voglio proprio che la memoria occupata dal mio programma (che osservo in fase di debug col task manager) diminuisca...

Suggerimenti?

alextyx Profilo | Expert

Qualche considerazione utile potresti trovarla qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=8000

Vedrai che il tuo problema sarà legato al maneggiare il Garbage Collector, che è una bestaccia!

Cteniza Profilo | Guru

Ti ho già risposto in un'altro forum
Lo metto anche qui così magari qualcuno mi restituisce qualche altro metodo (non si finisce mai di imparare).
Gli oggetti vengono rilasciati e lo spazio liberato quando arrivano all'end of scope.
Il GC finalizza gli oggetti quando il reference counter è arrivato a zero.
Il problema è che "sa lui" quando agire.
Tu puoi invocare GC ma tra questo e il rilascio della memoria può passare del tempo.
L'unica cosa che puoi fare è approntare i tuoi programmi perché l'end-of scope sia esplicito.
Ad esempio usa molto la clausola "using" esempio:
Using (Dim a As New StreamReader(...))
....
a.Close()
End Using
Circoscrivendo in un blocco di Using l'utilizzo ed il rilascio degli oggetti
Un'altra cosa è ad esempio, se fai dell'automazione o usi oggetti grafici, isolare in una classe autonoma la creazione e la chiusura degli oggetti.
Una terza cosa ad esempio è limitare al massimo il concatenamento di stringhe (sono entità immutabili che rimangono in memoria fino alla fine dell'applicazione e, a volte, anche dopo) utilizzando propriamente stringbuilder.

Carlik Profilo | Junior Member

Grazie a entrambi intanto:
Questo pomeriggio provo qualcosa e vi faccio saxe.
A dopo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5