10/09/09 9:00
Il Totem
Sul piano teorico, comunque, anche il metodo usato da manvb.net non avrebbe molto senso. Di solito viene usato per aumentare la velocità di un pezzo di codice (variable enregistration) e non per diminuire il consumo di ram, tanto più che hai una variabile in più. E come se non bastasse, il tipo Image è un tipo reference. Ciò significa che anche facendo:
Entrambe le proprietà sottendono a variabili che puntano allo stesso oggetto (quindi non c'è nulla che si crea di nuovo). Quando quel codice viene usato per cambiare l'immagine, comunque c'è solo un cambiamento di indirizzo e gli oggetti esistenti rimangono sempre 4.
Questo a meno che il codice scritto dal compilatore crei una copia dell'immagine con Clone, ma non mi sembra che lo faccia (in quel caso ci sarebbero sempre nuove istanze per ogni richiesta).
Inoltre, ha ragione manvb.net: il GC impiega almeno due generazioni per distruggere effettivamente un oggetto, a causa del fenomeno di object resurrection, il che non semplifica le cose ad uno che vuol risparmiare memoria. Solo, ricordati sempre di usare Dispose per i tipi reference che occupano risorse esterne, e di impostare a Nothing tutti gli oggetti che non servono più. Per il resto affidati allo Spirito del Framework e spera che vada tutto bene.
imgImm.BackgroundImage = My.Resources.Immagine
Entrambe le proprietà sottendono a variabili che puntano allo stesso oggetto (quindi non c'è nulla che si crea di nuovo). Quando quel codice viene usato per cambiare l'immagine, comunque c'è solo un cambiamento di indirizzo e gli oggetti esistenti rimangono sempre 4.
Questo a meno che il codice scritto dal compilatore crei una copia dell'immagine con Clone, ma non mi sembra che lo faccia (in quel caso ci sarebbero sempre nuove istanze per ogni richiesta).
Inoltre, ha ragione manvb.net: il GC impiega almeno due generazioni per distruggere effettivamente un oggetto, a causa del fenomeno di object resurrection, il che non semplifica le cose ad uno che vuol risparmiare memoria. Solo, ricordati sempre di usare Dispose per i tipi reference che occupano risorse esterne, e di impostare a Nothing tutti gli oggetti che non servono più. Per il resto affidati allo Spirito del Framework e spera che vada tutto bene.
aaa