Foros del Web » Programación para mayores de 30 ;) » .NET »

Como liberar mi objeto de la memoria

Estas en el tema de Como liberar mi objeto de la memoria en el foro de .NET en Foros del Web. Saludos, quería saber, en mis clases debo tener un método paradestruir el objeto despues de haber sido utilizado? si, para liberar esa memoria...como lo debo ...
  #1 (permalink)  
Antiguo 17/11/2009, 20:03
 
Fecha de Ingreso: septiembre-2005
Ubicación: Medellin
Mensajes: 215
Antigüedad: 18 años, 7 meses
Puntos: 0
Como liberar mi objeto de la memoria

Saludos, quería saber, en mis clases debo tener un método paradestruir el objeto despues de haber sido utilizado? si, para liberar esa memoria...como lo debo hacer?


Gracias
__________________
JU4N35
  #2 (permalink)  
Antiguo 17/11/2009, 20:10
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Como liberar mi objeto de la memoria

Puedes implementar a IDisposable y te creará (si usas vb) el método Dispose
Código vb.net:
Ver original
  1. Public Sub Dispose() Implements IDisposable.Dispose
  2.         ' No cambie este código. Coloque el código de limpieza en Dispose (ByVal que se dispone como Boolean).
  3.         Dispose(True)
  4.         GC.SuppressFinalize(Me)
  5.     End Sub

el GC liberará recursos de memoria. Espero te sirva
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 06/12/2009, 17:41
 
Fecha de Ingreso: septiembre-2005
Ubicación: Medellin
Mensajes: 215
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Como liberar mi objeto de la memoria

Cita:
Iniciado por eperedo Ver Mensaje
Puedes implementar a IDisposable y te creará (si usas vb) el método Dispose
Código vb.net:
Ver original
  1. Public Sub Dispose() Implements IDisposable.Dispose
  2.         ' No cambie este código. Coloque el código de limpieza en Dispose (ByVal que se dispone como Boolean).
  3.         Dispose(True)
  4.         GC.SuppressFinalize(Me)
  5.     End Sub

el GC liberará recursos de memoria. Espero te sirva
Hola, gracias por responder, mirá...es que me saca error en la línea 3, dice que demasiados argumentos...como si ese True no fuera ahí...será por que no le defíní ese parámetro de entrada a Dispose?
__________________
JU4N35
  #4 (permalink)  
Antiguo 07/12/2009, 04:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 16 años
Puntos: 0
Respuesta: Como liberar mi objeto de la memoria

Es tan facil como poner el nombre del objeto punto Dispose.

No hace falta un procedimiento para ello

Por ejemplo:
Código vb.net:
Ver original
  1. Dim pict as New Image
  2. Pict = Image.fromFile("mi ruta de imagen")
  3. picturebox1.image = Pict  'Le ponemos al picturebox la imagen
  4. Pict.dispose  'Eliminamos el objeto Pict de la memoria
  #5 (permalink)  
Antiguo 07/12/2009, 08:28
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Como liberar mi objeto de la memoria

Cita:
Es tan facil como poner el nombre del objeto punto Dispose.
No hace falta un procedimiento para ello
Es una clase creada por juanes222, no es propia del Framework, de todas formas no todas las clases soportan el método Dispose.

Cita:
...es que me saca error en la línea 3, dice que demasiados argumentos...como si ese True no fuera ahí...
Al implementar a IDisposable te crea la variable y métodos necesarios, el código quedaría así:
Código vb.net:
Ver original
  1. Private disposedValue As Boolean = False        ' Para detectar llamadas redundantes
  2.  
  3.     ' IDisposable
  4.     Protected Overridable Sub Dispose(ByVal disposing As Boolean)
  5.         If Not Me.disposedValue Then
  6.             If disposing Then
  7.                 ' TODO: Liberar recursos administrados cuando se llamen explícitamente
  8.             End If
  9.  
  10.             ' TODO: Liberar recursos no administrados compartidos
  11.         End If
  12.         Me.disposedValue = True
  13.     End Sub
  14.  
  15. #Region " IDisposable Support "
  16.     ' Visual Basic agregó este código para implementar correctamente el modelo descartable.
  17.     Public Sub Dispose() Implements IDisposable.Dispose
  18.         ' No cambie este código. Coloque el código de limpieza en Dispose (ByVal que se dispone como Boolean).
  19.         Dispose(True)
  20.         GC.SuppressFinalize(Me)
  21.     End Sub
  22. #End Region

Espero te ayude
__________________
Eduardo Peredo
Wigoin
  #6 (permalink)  
Antiguo 07/12/2009, 10:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 117
Antigüedad: 16 años
Puntos: 0
Respuesta: Como liberar mi objeto de la memoria

Cita:
Iniciado por eperedo Ver Mensaje
Es una clase creada por juanes222, no es propia del Framework, de todas formas no todas las clases soportan el método Dispose.
Es verdad, sorry
  #7 (permalink)  
Antiguo 07/12/2009, 18:53
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Como liberar mi objeto de la memoria

Cita:
Iniciado por eperedo Ver Mensaje
Puedes implementar a IDisposable y te creará (si usas vb) el método Dispose
Solo para conocimiento general: es lo mismo en C#

saludos
  #8 (permalink)  
Antiguo 07/12/2009, 19:21
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Como liberar mi objeto de la memoria

Me refería a que al tu escribir en VB "Implements Idisposable" y dar enter automaticamente el IDE genera los métodos y variables, mientras que en C# no se genera de esta forma.

Saludos.
__________________
Eduardo Peredo
Wigoin
  #9 (permalink)  
Antiguo 09/12/2009, 12:33
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 14 años, 9 meses
Puntos: 5
Respuesta: Como liberar mi objeto de la memoria

se supone que nesesitas destruirlo ya k el solo se activa el garbage collector.. y eso eliminida objetos de memoria
  #10 (permalink)  
Antiguo 10/12/2009, 12:36
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Como liberar mi objeto de la memoria

Cita:
Iniciado por eperedo Ver Mensaje
Me refería a que al tu escribir en VB "Implements Idisposable" y dar enter automaticamente el IDE genera los métodos y variables, mientras que en C# no se genera de esta forma.
Oh.. ok... hablando de eso (que VB genera automaticamente el código)... no entiendo porque no hacen algo parecido con C# . Creo que es una muy buena ayuda cuando usas VB.
  #11 (permalink)  
Antiguo 10/12/2009, 12:53
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Como liberar mi objeto de la memoria

se puede pero son keywords diferentes por lenguaje mientras en vb es implements en c# es el operador :
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:25.