GC.TryStartNoGCRegion Yöntem

Tanım

Kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır.

Aşırı Yüklemeler

Name Description
TryStartNoGCRegion(Int64, Int64, Boolean)

Büyük nesne yığını ve küçük nesne yığını için belirtilen miktarda bellek varsa kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır ve başlangıçta yeterli bellek yoksa çöp toplayıcının tam engelleme çöp toplaması yapıp yapmadığını denetler.

TryStartNoGCRegion(Int64, Int64)

Büyük nesne yığını ve küçük nesne yığını için belirtilen miktarda bellek varsa, kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır.

TryStartNoGCRegion(Int64, Boolean)

Belirtilen miktarda bellek varsa kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır ve başlangıçta yeterli bellek yoksa çöp toplayıcının tam engelleme çöp toplaması yapıp yapmadığını denetler.

TryStartNoGCRegion(Int64)

Belirtilen miktarda bellek varsa kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır.

Açıklamalar

Important

TryStartNoGCRegion yöntemine yapılan çağrıları iç içe yerleştiremezsiniz. Yalnızca çalışma zamanı şu anda GC olmayan bölge gecikme modunda ise EndNoGCRegion yöntemini çağırmalısınız. Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, sonraki çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrının başarılı olması için çağrıların EndNoGCRegionTryStartNoGCRegion başarılı olmasını beklememelisiniz.

TryStartNoGCRegion(Int64, Int64, Boolean)

Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs

Büyük nesne yığını ve küçük nesne yığını için belirtilen miktarda bellek varsa kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır ve başlangıçta yeterli bellek yoksa çöp toplayıcının tam engelleme çöp toplaması yapıp yapmadığını denetler.

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long, disallowFullBlockingGC As Boolean) As Boolean

Parametreler

totalSize
Int64

Çöp toplama tetiklemeden ayrılacak bayt cinsinden bellek miktarı. totalSize - lohSize kısa ömürlü bir segmentin boyutundan küçük veya eşit olmalıdır. Kısa ömürlü segmentin boyutu hakkında bilgi için, Çöp Toplamanın Temelleri makalesindeki "Kısa ömürlü nesiller ve segmentler" bölümüne bakın.

lohSize
Int64

Büyük nesne yığını (LOH) ayırmaları için kullanılacak içindeki totalSize bayt sayısı.

disallowFullBlockingGC
Boolean

true çöp toplayıcı başlangıçta küçük nesne yığınında (SOH) ve LOH'da belirtilen belleği ayıramıyorsa, tam engelleyici çöp toplamayı atlar; aksi takdirde , false.

Döndürülenler

true çalışma zamanı gerekli miktarda bellek işleyebildiyse ve atık toplayıcı GC bölgesi gecikme moduna giremiyorsa; aksi takdirde , false.

Öznitelikler

Özel durumlar

totalSize - lohSize kısa ömürlü segment boyutunu aşıyor.

İşlem zaten GC bölgesi gecikme modunda değil.

Açıklamalar

TryStartNoGCRegion(Int64, Int64, Boolean) yöntemi, bir uygulama kritik bir kod bölgesini yürütürken çöp toplamayı engelleyen gc bölgesi gecikme moduna atık toplayıcı yerleştirmeye çalışır. Çalışma zamanı başlangıçta istenen bellek miktarını ayıramıyorsa ve disallowFullBlockingGC bağımsız değişkeni ise false, atık toplayıcı ek bellek boşaltma girişiminde tam engelleme çöp toplama işlemi gerçekleştirir; aksi takdirde ayırma başarısız olur ve yöntemi döndürür false. Atık toplayıcı, LOH ve lohSizetotalSize - küçük nesne yığını (SOH) için ayırabiliyorsa lohSize GC bölgesi gecikme moduna girmez.

lohSize LOH için kritik yolda gerçekleşen tüm bellek ayırmalarını işleyecek kadar büyük olmalı ve totalSize - lohSize SOH için kritik yolda gerçekleşen tüm bellek ayırmalarını işleyecek kadar büyük olmalıdır. Buna uygulama tarafından yapılan ayırmaların yanı sıra çalışma zamanının uygulama adına yaptığı ayırmalar dahildir.

Başlangıçta yeterli bellek yoksa tam engelleyici çöp toplamayı önlemek için disallowFullBlockingGC ayarlamaktrue, yük dengeleme senaryolarında en çok yararlıdır: bir sistem bu yöntemi çağırabilir ve döndürürse trueistekleri kabul etmeye hazır olarak raporlayabilir ve döndürürse falseyük dengeleyici yeniden yönlendirme isteklerini diğer sistemlere yönlendirebilir. Daha sonra yöntemini çağırarak istekleri işlemediğinde tam engelleme çöp toplaması Collect(Int32, GCCollectionMode, Boolean, Boolean) yapabilir.

Important

TryStartNoGCRegion yöntemine yapılan çağrıları iç içe yerleştiremezsiniz. Yalnızca çalışma zamanı şu anda GC olmayan bölge gecikme modunda ise EndNoGCRegion yöntemini çağırmalısınız. Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, sonraki çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrının başarılı olması için çağrıların EndNoGCRegionTryStartNoGCRegion başarılı olmasını beklememelisiniz.

yöntemini çağırarak GC bölgesi gecikme süresi yok modundan EndNoGCRegion çıkarsınız.

Ayrıca bkz.

Şunlara uygulanır

TryStartNoGCRegion(Int64, Int64)

Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs

Büyük nesne yığını ve küçük nesne yığını için belirtilen miktarda bellek varsa, kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır.

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize);
public static bool TryStartNoGCRegion(long totalSize, long lohSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize, long lohSize);
static member TryStartNoGCRegion : int64 * int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long) As Boolean

Parametreler

totalSize
Int64

Çöp toplama tetiklemeden ayrılacak bayt cinsinden bellek miktarı. totalSize - lohSize kısa ömürlü bir segmentin boyutundan küçük veya eşit olmalıdır. Kısa ömürlü segmentin boyutu hakkında bilgi için, Çöp Toplamanın Temelleri makalesindeki "Kısa ömürlü nesiller ve segmentler" bölümüne bakın.

lohSize
Int64

Büyük nesne yığını (LOH) ayırmaları için kullanılacak içindeki totalSize bayt sayısı.

Döndürülenler

true çalışma zamanı gerekli miktarda bellek işleyebildiyse ve atık toplayıcı GC bölgesi gecikme moduna giremiyorsa; aksi takdirde , false.

Öznitelikler

Özel durumlar

totalSize - lohSize kısa ömürlü segment boyutunu aşıyor.

İşlem zaten GC bölgesi gecikme modunda değil.

Açıklamalar

TryStartNoGCRegion(Int64, Int64) yöntemi, bir uygulama kritik bir kod bölgesini yürütürken çöp toplamayı engelleyen gc bölgesi gecikme moduna atık toplayıcı yerleştirmeye çalışır. Çalışma zamanı başlangıçta istenen bellek miktarını ayıramazsa, atık toplayıcı ek bellek boşaltma girişiminde tam engelleme çöp toplama işlemi gerçekleştirir. Atık toplayıcı, LOH ve lohSizetotalSize - küçük nesne yığını (SOH) için ayırabiliyorsa lohSize GC bölgesi gecikme moduna girmez.

lohSize LOH için kritik yolda gerçekleşen tüm bellek ayırmalarını işleyecek kadar büyük olmalı ve totalSize - lohSize SOH için kritik yolda gerçekleşen tüm bellek ayırmalarını işleyecek kadar büyük olmalıdır. Buna uygulama tarafından yapılan ayırmaların yanı sıra çalışma zamanının uygulama adına yaptığı ayırmalar dahildir.

Important

TryStartNoGCRegion yöntemine yapılan çağrıları iç içe yerleştiremezsiniz. Yalnızca çalışma zamanı şu anda GC olmayan bölge gecikme modunda ise EndNoGCRegion yöntemini çağırmalısınız. Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, sonraki çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrının başarılı olması için çağrıların EndNoGCRegionTryStartNoGCRegion başarılı olmasını beklememelisiniz.

yöntemini çağırarak GC bölgesi gecikme süresi yok modundan EndNoGCRegion çıkarsınız.

Ayrıca bkz.

Şunlara uygulanır

TryStartNoGCRegion(Int64, Boolean)

Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs

Belirtilen miktarda bellek varsa kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır ve başlangıçta yeterli bellek yoksa çöp toplayıcının tam engelleme çöp toplaması yapıp yapmadığını denetler.

public:
 static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, disallowFullBlockingGC As Boolean) As Boolean

Parametreler

totalSize
Int64

Çöp toplama tetiklemeden ayrılacak bayt cinsinden bellek miktarı. Kısa ömürlü bir segmentin boyutundan küçük veya eşit olmalıdır. Kısa ömürlü segmentin boyutu hakkında bilgi için, Çöp Toplamanın Temelleri makalesindeki "Kısa ömürlü nesiller ve segmentler" bölümüne bakın.

disallowFullBlockingGC
Boolean

true çöp toplayıcı başlangıçta bayt ayıramıyorsa totalSize , tam engelleyici çöp toplamayı atlar; aksi takdirde, false.

Döndürülenler

true çalışma zamanı gerekli miktarda bellek işleyebildiyse ve atık toplayıcı GC bölgesi gecikme moduna giremiyorsa; aksi takdirde , false.

Öznitelikler

Özel durumlar

totalSize kısa ömürlü segment boyutunu aşıyor.

İşlem zaten GC bölgesi gecikme modunda değil.

Açıklamalar

TryStartNoGCRegion(Int64, Boolean) yöntemi, bir uygulama kritik bir kod bölgesini yürütürken çöp toplamayı engelleyen gc bölgesi gecikme moduna atık toplayıcı yerleştirmeye çalışır. Çalışma zamanı başlangıçta istenen bellek miktarını ayıramıyorsa ve disallowFullBlockingGC bağımsız değişkeni ise false, atık toplayıcı ek bellek boşaltma girişiminde tam engelleme çöp toplama işlemi gerçekleştirir; aksi takdirde ayırma başarısız olur ve yöntemi döndürür false. Atık toplayıcı, gerekli bellek miktarını ayırabiliyorsa gc bölgesi gecikme moduna girmez ve bu durumda aslında 2 * totalSize olur (küçük nesne yığını ve totalSize büyük nesne yığını için ayırmayı totalSize dener).

totalSize kritik yolda gerçekleşen tüm bellek ayırmalarını işleyecek kadar büyük olmalıdır. Buna uygulama tarafından yapılan ayırmaların yanı sıra çalışma zamanının uygulama adına yaptığı ayırmalar dahildir.

Başlangıçta yeterli bellek yoksa tam engelleyici çöp toplamayı önlemek için disallowFullBlockingGC ayarlamaktrue, yük dengeleme senaryolarında en çok yararlıdır: bir sistem bu yöntemi çağırabilir ve döndürürse trueistekleri kabul etmeye hazır olarak raporlayabilir ve döndürürse falseyük dengeleyici yeniden yönlendirme isteklerini diğer sistemlere yönlendirebilir. Daha sonra yöntemini çağırarak istekleri işlemediğinde tam engelleme çöp toplaması Collect(Int32, GCCollectionMode, Boolean, Boolean) yapabilir.

Important

TryStartNoGCRegion yöntemine yapılan çağrıları iç içe yerleştiremezsiniz. Yalnızca çalışma zamanı şu anda GC olmayan bölge gecikme modunda ise EndNoGCRegion yöntemini çağırmalısınız. Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, sonraki çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrının başarılı olması için çağrıların EndNoGCRegionTryStartNoGCRegion başarılı olmasını beklememelisiniz.

yöntemini çağırarak GC bölgesi gecikme süresi yok modundan EndNoGCRegion çıkarsınız.

Ayrıca bkz.

Şunlara uygulanır

TryStartNoGCRegion(Int64)

Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs
Kaynak:
GC.CoreCLR.cs

Belirtilen miktarda bellek varsa kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeye çalışır.

public:
 static bool TryStartNoGCRegion(long totalSize);
public static bool TryStartNoGCRegion(long totalSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion(long totalSize);
static member TryStartNoGCRegion : int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long) As Boolean

Parametreler

totalSize
Int64

Çöp toplama tetiklemeden ayrılacak bayt cinsinden bellek miktarı. Kısa ömürlü bir segmentin boyutundan küçük veya eşit olmalıdır. Kısa ömürlü segmentin boyutu hakkında bilgi için, Çöp Toplamanın Temelleri makalesindeki "Kısa ömürlü nesiller ve segmentler" bölümüne bakın.

Döndürülenler

true çalışma zamanı gerekli miktarda bellek işleyebildiyse ve atık toplayıcı GC bölgesi gecikme moduna giremiyorsa; aksi takdirde , false.

Öznitelikler

Özel durumlar

totalSize kısa ömürlü segment boyutunu aşıyor.

İşlem zaten GC bölgesi gecikme modunda değil.

Açıklamalar

TryStartNoGCRegion(Int64) yöntemi, bir uygulama kritik bir kod bölgesini yürütürken çöp toplamayı engelleyen gc bölgesi gecikme moduna atık toplayıcı yerleştirmeye çalışır. Çalışma zamanı başlangıçta istenen bellek miktarını ayıramazsa, atık toplayıcı ek bellek boşaltma girişiminde tam engelleme çöp toplama işlemi gerçekleştirir. Atık toplayıcı gerekli bellek miktarını ayırabiliyorsa GC bölgesi gecikme moduna girmez; bu durumda aslında 2 * totalSize bayttır (küçük nesne yığını için bayt ve totalSize büyük nesne yığını için bayt ayırmayı totalSize dener).

totalSize kritik yolda gerçekleşen tüm bellek ayırmalarını işleyecek kadar büyük olmalıdır. Buna uygulama tarafından yapılan ayırmaların yanı sıra çalışma zamanının uygulama adına yaptığı ayırmalar dahildir.

Important

TryStartNoGCRegion yöntemine yapılan çağrıları iç içe yerleştiremezsiniz. Yalnızca çalışma zamanı şu anda GC olmayan bölge gecikme modunda ise EndNoGCRegion yöntemini çağırmalısınız. Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, sonraki çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrının başarılı olması için çağrıların EndNoGCRegionTryStartNoGCRegion başarılı olmasını beklememelisiniz.

yöntemini çağırarak GC bölgesi gecikme süresi yok modundan EndNoGCRegion çıkarsınız.

Ayrıca bkz.

Şunlara uygulanır