cual es la diferencia entre close,finalize,nothing????

23/11/2005 - 01:17 por betoja | Informe spam
hola!!! tengo unas dudas, algo que no me ha quedado muy claro
y mem gustaria que me ayudaran!!!!

cual es la diferencia entre close,finalize,nothing????
 

Leer las respuestas

#1 A.Poblacion
23/11/2005 - 08:15 | Informe spam
"betoja" wrote in message
news:
hola!!! tengo unas dudas, algo que no me ha quedado muy claro
y mem gustaria que me ayudaran!!!!

cual es la diferencia entre close,finalize,nothing????



El Close() es un método de una clase que llamas explícitamente para
decirle al objeto creado que libere los recursos que internamente haya
consumido.
El Finalize se ejecuta automáticamente, no lo llamas tú, y lo que
normalmente suele hacer por dentro es llamar al Close(). El problema que
tiene es que no sabes cuándo va a ser llamado, porque el sistema éspera a
que ruede el Garbage Collector, y entonces pone el Finalize en una cola de
finalización, y se ejecuta cuando pueda. Por eso, si tus objetos tienen que
liberar algún recurso, es preferible que llames expresamente al Close en
lugar de esperar a que el sistema lo llame automáticamente por medio del
Finalize.
Asignar Nothing a una referencia de un objeto, lo que hace es indicar que
esa referencia ya no vale para nada. El objeto puede ser que tenga más
referencias en otro sitio, por lo que no se destruye todavía aunque hayas
puesto el Nothing. Cuando el sistema anda escaso de memoria, ejecuta
automáticamente el Garbage Collector, y éste examina todos los objetos para
ver si hay alguno que no tenga ninguna referencia (cosa que ocurrirá si
todas tienen un Nothing). De ser así, se libera la memoria ocupada por ese
objeto, a no ser que tenga un Finalize, en cuyo caso se mueve a la cola de
finalización, en la que un hilo de ejecución separado va ejecutando todos
los Finalize de los objetos que estén en esa cola. Una vez ejecutado el
Finalize, se libera la referencia al objeto que había en la cola de
finalización, y cuando se produzca una segunda pasada del Garbage Collector,
entonces sí que ya se libera la memoria ocupada por el objeto.

Preguntas similares