¿En VB.NET se tiene uno que preocupar de liberar recursos? ¿o el garbage collector ese se encarga de todo?
Por ejemplo.
Si quiero que al pulsar un boton, salga un formulario modal yo uso esto
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim l_frm as new frmDialogo
l_frm.ShowDialog
End Sub
¿He de poner algo mas para que se libere el formulario? ¿O se queda por ahi lekeando memoria?
El Garbage Collector (GC) se encarga de todos los recursos manejados(managed), o sea, todo lo hecho en .NET. Los recursos no manejados como ficheros, handles, conexiones, referencias COM, Fonts.... deberías liberarlos explícitamente. La interfaz IDisposable define este comportamiento, por el cual puedes liberar recursos no manejados sin tener que esperar a que el GC actúe.
En C# tienes using(){} para que al salir de ámbito te llame automáticamente a Dispose.
Busca en el SDK información sobre IDisposable, todo eso es común a .NET, de VB no sé nada( ni quiero saberlo)
PD: Form implementa IDisposable, así que más que un leak, provocas una "retención" de memoria si al acabar de usarlo no llamas a Dispose(), los recursos del Form no se liberarán hasta que el GC no finalize el Form.
PDD: Mira a ver si en VB tenéis algo equivalente al using(){}, sino llámalo manualmente
Cita de: "Grugnorr"El Garbage Collector (GC) se encarga de todos los recursos manejados(managed), o sea, todo lo hecho en .NET. Los recursos no manejados como ficheros, handles, conexiones, referencias COM, Fonts.... deberías liberarlos explícitamente. La interfaz IDisposable define este comportamiento, por el cual puedes liberar recursos no manejados sin tener que esperar a que el GC actúe.
En C# tienes using(){} para que al salir de ámbito te llame automáticamente a Dispose.
Busca en el SDK información sobre IDisposable, todo eso es común a .NET, de VB no sé nada( ni quiero saberlo)
PD: Form implementa IDisposable, así que más que un leak, provocas una "retención" de memoria si al acabar de usarlo no llamas a Dispose(), los recursos del Form no se liberarán hasta que el GC no finalize el Form.
PDD: Mira a ver si en VB tenéis algo equivalente al using(){}, sino llámalo manualmente
gracias, creo que me ha quedado mas claro ;-)