Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo GC.TryStartNoGCRegion (Int64, Int64)

 

Data di pubblicazione: ottobre 2016

Prova a impedire l'operazione di Garbage Collection durante l'esecuzione di un percorso critico se è disponibile una quantità specificata di memoria per gli heap degli oggetti grandi e degli oggetti piccoli.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

[SecurityCriticalAttribute]
public static bool TryStartNoGCRegion(
	long totalSize,
	long lohSize
)

Parametri

totalSize
Type: System.Int64

Quantità di memoria in byte da allocare senza attivare un'operazione di Garbage Collection. totalSize - lohSize deve essere minore o uguale alle dimensioni di un segmento temporaneo. Per informazioni sulle dimensioni di un segmento temporaneo, vedere la sezione "Generazioni e segmenti temporanei" nell'articolo Fundamentals of Garbage Collection.

lohSize
Type: System.Int64

Numero di byte in totalSize da usare per allocazioni di heap degli oggetti grandi (LOH).

Valore restituito

Type: System.Boolean

true se il runtime è riuscito a eseguire il commit della quantità di memoria richiesta e il Garbage Collector può accedere alla modalità di eliminazione della latenza delle aree di Garbage Collection; in caso contrario, false.

Exception Condition
ArgumentOutOfRangeException

totalSizelohSize supera le dimensioni del segmento temporaneo.

InvalidOperationException

Il processo è già in modalità di eliminazione della latenza delle aree di Garbage Collection.

Il TryStartNoGCRegion(Int64, Int64) metodo tenta di inserire il garbage collector in alcuna modalità latenza delle aree GC, che impedisce l'operazione di garbage collection durante l'esecuzione di un'app un'area critica del codice. Se il runtime è riuscito ad allocare inizialmente la quantità di memoria richiesta, il garbage collector esegue una completa di garbage collection bloccante nel tentativo di liberare memoria aggiuntiva. Il garbage collector non immette Nessuna modalità di latenza delle aree GC, se è in grado di allocare lohSize per l'heap oggetti grandi e totalSizelohSize per l'heap oggetti piccoli (SOH).

lohSizedeve essere sufficiente per gestire tutte le allocazioni di memoria che si verificano in un percorso critico per l'heap oggetti grandi, e totalSizelohSize deve essere sufficiente per gestire tutte le allocazioni di memoria che si verificano in un percorso critico per il rapporto di integrità. Ciò include le allocazioni dall'app, nonché le allocazioni eseguite per conto dell'applicazione di runtime.

System_CAPS_importantImportante

Non è possibile annidare le chiamate al TryStartNoGCRegion metodo e si devono chiamare solo il EndNoGCRegion metodo se il runtime è attualmente in alcuna modalità di latenza delle aree GC. In altre parole, non è necessario chiamare TryStartNoGCRegion più volte (dopo la prima chiamata di metodo, le chiamate successive non avrà esito positivo), e non è necessario attendere le chiamate a EndNoGCRegion abbia esito positivo solo perché la prima chiamata a TryStartNoGCRegion ha avuto esito positivo.

Si esce dalla modalità di latenza di Garbage Collection area chiamando il EndNoGCRegion metodo.

.NET Framework
Disponibile da 4.6
Torna all'inizio
Mostra: