L'intervistatore mi ha chiesto di questo oggi ... c'è una risposta?
L'intervistatore mi ha chiesto di questo oggi ... c'è una risposta?
Risposte:
System.GC.Collect()forza l'esecuzione del Garbage Collector. Questo non è raccomandato ma può essere utilizzato in caso di situazioni.
Non è consigliabile chiamare gc esplicitamente, ma se si chiama
GC.Collect();
GC.WaitForPendingFinalizers();
Chiamerà GC esplicitamente in tutto il codice, non dimenticare di chiamare GC.WaitForPendingFinalizers();dopo GC.Collect().
WaitForPendingFinalizersnon fornisce necessariamente "prestazioni migliori": si blocca semplicemente fino a quando tutti gli oggetti nella coda di finalizzazione non sono stati finalizzati (oggetti che potrebbero essere stati inseriti nella precedente chiamata a Collect). Se si desidera che tali oggetti vengano raccolti, è necessario un'altra chiamata Collect dopo la chiamata WaitForPendingFinalizers.
WaitForPendingFinalizers?
GC.Collect()
da MDSN ,
Utilizzare questo metodo per provare a recuperare tutta la memoria inaccessibile.
Tutti gli oggetti, indipendentemente da quanto tempo sono in memoria, vengono considerati per la raccolta; tuttavia, gli oggetti a cui viene fatto riferimento nel codice gestito non vengono raccolti. Utilizzare questo metodo per forzare il sistema a provare a recuperare la massima quantità di memoria disponibile.
Tieni presente, tuttavia, che il Garbage Collector potrebbe non sempre ripulire ciò che ti aspetti ...
Non si desidera forzare l'esecuzione del Garbage Collector.
Tuttavia, se lo hai mai fatto (come un esercizio puramente accademico, ovviamente):
GC.Collect()
Penso che .Net Framework lo faccia automaticamente, ma per ogni evenienza. Innanzitutto, assicurati di selezionare ciò che desideri cancellare, quindi chiama il garbage collector:
randomClass object1 = new randomClass
...
...
// Give a null value to the code you want to delete
object1 = null;
// Then call the garbage collector to erase what you gave the null value
GC.Collect();
Penso che sia tutto .. Spero di aiutare qualcuno.