Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Liberar Recursos

Iniciado por Lord Trancos 2, 17 de Marzo de 2004, 04:30:15 PM

« anterior - próximo »

Lord Trancos 2

 ¿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?  
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

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
hat the hells!

Lord Trancos 2

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 ;-)
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.