Dado que C# utiliza la recolección de basura. Cuándo es necesario usar. ¿Desea liberar la memoria?asignación de memoria C# y patrones de desasignación
Me doy cuenta de que hay algunas situaciones, así que intentaré enumerar las que se me ocurren.
- Si cierro un Formulario que contiene un objeto de tipo GUI, ¿se desreferencian esos objetos y, por lo tanto, se recopilarán?
- Si creo un objeto local utilizando new, ¿debo .Disfáltelo antes de que el método salga o simplemente deje que el GC se encargue de él? ¿Cuál es la buena práctica en este caso?
- ¿Hay momentos en los que forzar un GC es comprensible?
- ¿Los eventos son recopilados por el GC cuando se recopila su objeto?
posible duplicado de http://stackoverflow.com/questions/2714811/is-there-a-common-practice-how-to-make-freeing-memory-for-garbage-collector-easie –
También, duplicado de : http://stackoverflow.com/questions/331786/since-net-has-a-garbage-collector-why-do-we-need-finalizers-destructors-dispose Consulte también: http://stackoverflow.com/questions/1090451/net-garbage-collector-basics http://stackoverflow.com/questions/1729289/net-garbage-collector-mystery http://stackoverflow.com/questions/298261/do-event-handlers-stop-garbage -collection-from-occuring http://stackoverflow.com/questions/298261/do-event-handlers-stop-garbage-collection-from-occuring http://stackoverflow.com/questions/888280/ http: // stackoverflow .com/questions/371109/ –
Generalmente IDisposable se implementa para recursos no administrados que no se devolverán, cerrarán ni utilizarán de manera óptima cuando el objec t es limpiado por el GC - el objeto administrado siempre es limpiado por GC. Ver IDisposable @ http: // msdn.microsoft.com/en-us/library/system.idisposable.aspx Para el n. ° 2, el GC se encarga de los objetos en el código administrado ya sea que llame a Dispose() o no. # 1 y los "objetos del tipo de GUI" incorporados se recopilarán si llama a Dispose() o no. También vea http://msdn.microsoft.com/en-us/magazine/bb985010.aspx –