Elimineu la trucada al recol·lector d'escombraries?
Elimineu la trucada al recol·lector d'escombraries?

Vídeo: Elimineu la trucada al recol·lector d'escombraries?

Vídeo: Elimineu la trucada al recol·lector d'escombraries?
Vídeo: CÓMO HACER MERMELADA DE NÍSPEROS - LA RECETA MÁS FÁCIL 2023, Desembre
Anonim

El mètode Dispose El mètode Dispose realitza tota la neteja d'objectes, de manera que el recol·lector d'escombraries ja no necessita cridar l'objecte dels objectes… Per tant, la crida al mètode SuppressFinalize evita que col·lector d'escombraries d'executar el finalitzador. Si el tipus no té finalitzador, la trucada a GC.

S'anomena Dispose automàticament?

Dispose no es trucarà automàticament. Si hi ha un finalitzador, es trucarà automàticament. La implementació d'IDisposable ofereix una manera perquè els usuaris de la vostra classe alliberin recursos abans d'hora, en lloc d'esperar al col·lector d'escombraries.

El finalitzador crida Dispose?

No tens cap control sobre quan es truca al finalitzador, de manera que seria dufós que el finalitzador truqui automàticament a Dispose en nom teu. No en el cas que descriu, però el GC trucarà al Finalizer per tu, si en tens un. El GC no trucarà a disposar.

Què passa si no es diu Dispose?

Si no truqueu a Dispose en un objecte que té un finalitzador, l'objecte tindrà el seu Finalitzador executat pel GC a la propera col·lecció.

Per què s'ha de trucar a GC SuppressFinalize quan s'implementa el mètode Dispose?

Dispose hauria de trucar a GC. Suprimir Finalitzar perquè el col·lector d'escombraries no cridi al finalitzador de l'objecte. Per evitar que els tipus derivats amb finalitzadors hagin de tornar a implementar IDdisposable i cridar-lo, els tipus no segellats sense finalitzadors haurien de trucar a GC.

Finalize vs Dispose | C Interview Questions

Finalize vs Dispose | C Interview Questions
Finalize vs Dispose | C Interview Questions

Recomanat: