Non ci sono più thread (a, b, c ecc) circa il fatto che Cancella() ing oggetti nei contenitori dei componenti .NET non Smaltire loro (chiamando Dispose (vero).I controlli chiari non li eliminano: qual è il rischio?
più delle volte, secondo me, i componenti Clear-ED sono non più utilizzata nell'applicazione, quindi ha bisogno esplicitamente essere smaltiti dopo di loro Cancellazione dai contenitori padre.
Forse è una buona idea che il metodo di raccolta Clear
aveva un bool parametro dispose
che, quando è vero, dispone anche gli elementi della raccolta prima della sua rimozione dall'elenco?
Se c'è una chiamata di disporre nel finalizzatore, che riceveranno disposti. Se non c'è, allora c'è probabilmente (se il programmatore ha seguito le pratiche accettate) nulla di non gestito da smaltire ed è sicuro solo raccoglierli. –
@Aviad: il problema che il metodo Dispose non verrà mai chiamato dal GC, quindi è necessario farlo da solo, prima di chiamare Clear on collection. – serhio
Quello che voglio dire è che se il programmatore del controllo non ha inserito una chiamata Dispose nel suo finalizzatore (che viene chiamato quando l'oggetto viene sottoposto a garbage collection), allora probabilmente non c'è nulla da smaltire. –