URGENTE ¿Como cierro un objeto??

24/08/2005 - 14:03 por AJuncosa | Informe spam
Hola estoy haciendo mis pinitos en vb.net y ya me he dado con la primera.

como puedo cerrar un objeto com + (creado en vb6)??

me explico, en vb6 creas un objeto con "Createobject(...)" y luego lo
destruyes con "set obj=nothing", bueno pues me gustaría saber cual es el
equivalente en .net

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Angel. E. Ruiz. Pastor
24/08/2005 - 14:41 | Informe spam
Objeto.dispose

Saludos cordiales,
Ángel Ruiz
MCP C#
MVP de Visual Basic desde 2004
Caracas - Venezuela
"El conocimiento es un bien, que crece a medida que se comparte"
"AJuncosa" escribió en el mensaje
news:
Hola estoy haciendo mis pinitos en vb.net y ya me he dado con la primera.

como puedo cerrar un objeto com + (creado en vb6)??

me explico, en vb6 creas un objeto con "Createobject(...)" y luego lo
destruyes con "set obj=nothing", bueno pues me gustaría saber cual es el
equivalente en .net

Muchas gracias
Respuesta Responder a este mensaje
#2 AJuncosa
24/08/2005 - 14:56 | Informe spam
Hola Ángel,
muchas gracias por contestar, pero el problema es que con el objeto.dispose
no me funciona ya que el componente com (objeto) que instancio cuando le digo
objeto.dispose() me da un error diciéndome que el objeto no tiene la funcion
dispose().

Un saludo.

"Angel. E. Ruiz. Pastor" wrote:

Objeto.dispose

Saludos cordiales,
Ángel Ruiz
MCP C#
MVP de Visual Basic desde 2004
Caracas - Venezuela
"El conocimiento es un bien, que crece a medida que se comparte"
"AJuncosa" escribió en el mensaje
news:
> Hola estoy haciendo mis pinitos en vb.net y ya me he dado con la primera.
>
> como puedo cerrar un objeto com + (creado en vb6)??
>
> me explico, en vb6 creas un objeto con "Createobject(...)" y luego lo
> destruyes con "set obj=nothing", bueno pues me gustaría saber cual es el
> equivalente en .net
>
> Muchas gracias



Respuesta Responder a este mensaje
#3 Leonardo Azpurua [mvp vb]
24/08/2005 - 19:27 | Informe spam
"AJuncosa" escribió en el mensaje
news:
Hola estoy haciendo mis pinitos en vb.net y ya me he dado con la primera.

como puedo cerrar un objeto com + (creado en vb6)??

me explico, en vb6 creas un objeto con "Createobject(...)" y luego lo
destruyes con "set obj=nothing", bueno pues me gustaría saber cual es el
equivalente en .net

Muchas gracias



Hola.

Escribi este código en el click de un Boton:

Dim c As Project1.Class1
c = New Project1.Class1
UserControl11.Valor = c.Multiplica(UserControl11.Valor, 5)
c = Nothing
c = New Project1.Class1
Dim f As New frmCalc
f.ShowDialog()
c = Nothing

Class1 está en una DLL escrita con VB6, y en los eventos Initialize y
Terminate da un mensaje diciendo que fue creada o destruida.

La secuencia de mensajes es:

Class1: Initialize
Class1: Initialize
Class1: Terminate
Se muestra modalmente «f»
Class1: Terminate (al cerrar la forma y salir de la app)

Lo normal habria sido Initialize/Terminate/Initialize/f.Show/Terminate

Creo que el primer objeto es destruido no por la asignacion de Nothing a la
variable que lo referenciaba, sino por la segunda creación (de allí que
primero muestre el Initialize de la nueva instancia y leugo el Terminate de
la primera). Y la segunda destrucción (que no coincide con la asignación de
Nothing a la variable, sino con la terminación del programa) se debe a la
liberacion final de referencias.

De manera que los objetos COM son tratados igual que los objetos internos en
el sentido de que son destruidos cuando el recolector de basura se ocupa de
ellos.

Si dependes de la destruccion de un objeto COM para la liberación de
recursos, lo mas correcto es lo que sugiere Angel: agregale un metodo
Dispose que realice esa tarea y llamalo antes de descartar el objeto. Si no
puedes hacerlo, y no puedes esperar a la proxima recolección de basura (que
podría producirse al salir del programa), debes poner su referencia a
Nothing (objCom = Nothing) y provocar una recolección de basura
(GC.Collect()). No es recomendable forzar las recolecciones (dicen, no
entiendo por que) pero si no te queda mas remedio, puedes hacerlo asi.

Salud!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida