"waccos" <waccos> wrote in message
news:364274@...
Salve, sono nuovo del forum e innanzitutto è doveroso un saluto a tutti. Espongo velocemente il mio problema.
Ho creato un mio progetto Silverlight, partendo dal template di navigazione. Dopodichè ho lasciato una unica pagina nel progetto, la pagina
Home, ed ho implementato 3 tipi di layout visuali(mi servono per una galleria fotografica), derivando le 3 classi da UserControl. Per la gestione delle fotografie, ho creato una semplicissima classe, chiamata CacheManager, che non fa altro che mantenere in una HashTable le varie foto
che man mano vengono richieste dall'utente, onde evitare di scaricarle ogniqualvolta vengano visitate. Lo so che il browser gestisce il tutto, ma il comportamento non mi piaceva.
Il mio problema è che, quando passo da una visuale all'altra, l'oggetto che
rappresenta la "vecchia" visuale, rimane in memoria e continua a ricevere gli eventi scatenati dal CacheManager. L'unica soluzione che ho trovato è impementare l'interfaccia IDisposable(solamente per avere il metodo Dispose
esposto), inserire del codice all'interno del metodo Dispose affinchè tutte
le risorse "incriminate" vengano quantomento neutralizzate, e richiamare il
metodo Dispose ogniqualvolta si cambia visuale o si navighi in una nuova pagina. Secondo voi va bene come soluzione o esistono metodi più "eleganti"? Ho riscontrato alcuni errori, tipo nullpointer, che ho dovuto gestire, mentre prima della modifica non si verificavano, poichè anche dopo
aver chiamato il dispose, sembra che alcuni eventi rimangano nella coda di Silverligth. Scusate la lungaggine e grazie in anticipo
Ciao,
nell'HashTable memorizzi con una chiave univoca i byte di ciascuna immagine? Il CacheManager che tipo di eventi scatena?
Stai adottando le corrette metodologie di lock?