|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Aug 2004
Messaggi: 124
|
[C# 3.5] List e memory leak
Bondì!
Ho un piccolo dubbio che mi assale , praticamente utilizzo LINQ per popolarmi una lista di classe XCodice:
private List<X> result; result = LINQ.X.ToList<X>(); Il problema è questo: quando chiudo il form la lista continua a perseguitarmi . Ho notato con un profiler che non viene assolutamente mangiata dal GC, nè forzando il Dispose() del form, nè mettendo il riferimento a null alla lista. I 20 mb sono lì, ed ovviamente continuano ad aumentare se chiudo e riapro il form ad infinito, fino ad arrivare alla saturazione del PC. Mi sfugge qualcosa? Cosa può essere? |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Aug 2004
Messaggi: 124
|
Errata corrige: stiamo parlando di memoria allocata e non di quella effettivamente usata dal programma.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
posta qualcosa in piu'... cos'e' la classe X?
Poi la parte result = LINQ.X.ToList<X>(); non mi sembra corretta. (la prima X dovrebbe essere una collezione, ma e' gia' il nome della classe. Insomma non mi e' ben chiara la situazione)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Aug 2004
Messaggi: 124
|
Sì, la sintassi effettivamente non è corretta, ma più che un problema di LINQ è un problema di memoria allocata. La classe X è una semplice classe LINQ, 'na tabella semplice con qualche stringa ed intero.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Jul 2008
Messaggi: 237
|
Ecco qualcosa che puoi fare, tralasciando la sintassi che dovrebbe essere:
Codice:
private List<X> result; result = QUALCHE_OGGETTO.ToList(); //il tipo deve venire inferito automaticamente!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:15.










, praticamente utilizzo LINQ per popolarmi una lista di classe X
. 








