Aracılığıyla paylaş


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

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ığı 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)

Belirli bir bellek miktarı 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 bir engelleme çöp toplaması yapıp yapmadığı 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

Önemli

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

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ığı 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

Atık toplama tetiklemeden ayrılacak bayt cinsinden bellek miktarı. totalSize -lohSize kısa ömürlü bir segmentin boyutundan küçük veya buna eşit olmalıdır. Kısa ömürlü bir segmentin boyutu hakkında bilgi için Çöp Toplamanın Temelleri makalesinin "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 atık toplayıcı başlangıçta küçük nesne yığınında (SOH) ve LOH'da belirtilen belleği ayıramıyorsa, tam engelleyen çöp toplamayı atlar; aksi takdirde , false.

Döndürülenler

Boolean

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 toplamaya izin veren, atık toplayıcıyı GC bölgesi gecikme moduna 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 totalSize - lohSize küçük nesne yığını (SOH) için ayırabiliyorsa lohSize GC bölgesi gecikme moduna girmez.

lohSize LOH için kritik yolda oluşan 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.

true Başlangıçta yeterli bellek yoksa tam engelleyici çöp toplamayı önlemek için ayarının disallowFullBlockingGC ayarlanması yük dengeleme senaryolarında en kullanışlı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 dengeleyicinin istekleri diğer sistemlere yönlendirmesini sağlayabilir. Ardından yöntemini çağırarak istekleri işlemediğinde tam bir engelleme çöp toplama işlemi Collect(Int32, GCCollectionMode, Boolean, Boolean) gerçekleştirebilir.

Önemli

Yöntemine çağrıları TryStartNoGCRegion iç içe yerleştiremezsiniz ve yalnızca çalışma zamanı şu anda GC bölgesi gecikme modunda değilse yöntemini çağırmalısınız EndNoGCRegion . Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, izleyen çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrı TryStartNoGCRegion olduğu için EndNoGCRegion çağrıların 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)

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

Atık toplama tetiklemeden ayrılacak bayt cinsinden bellek miktarı. totalSize -lohSize kısa ömürlü bir segmentin boyutundan küçük veya buna eşit olmalıdır. Kısa ömürlü bir segmentin boyutu hakkında bilgi için Çöp Toplamanın Temelleri makalesinin "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

Boolean

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 toplamaya izin veren, atık toplayıcıyı GC bölgesi gecikme moduna 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 totalSize - lohSize küçük nesne yığını (SOH) için ayırabiliyorsa lohSize GC bölgesi gecikme moduna girmez.

lohSize LOH için kritik yolda oluşan 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.

Önemli

Yöntemine çağrıları TryStartNoGCRegion iç içe yerleştiremezsiniz ve yalnızca çalışma zamanı şu anda GC bölgesi gecikme modunda değilse yöntemini çağırmalısınız EndNoGCRegion . Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, izleyen çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrı TryStartNoGCRegion olduğu için EndNoGCRegion çağrıların 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)

Belirli bir bellek miktarı 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 bir engelleme çöp toplaması yapıp yapmadığı 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

Atık 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ü bir segmentin boyutu hakkında bilgi için Çöp Toplamanın Temelleri makalesinin "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 engelleyen çöp toplamayı atlar; aksi takdirde , false.

Döndürülenler

Boolean

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 toplamaya izin veren, atık toplayıcıyı GC bölgesi gecikme moduna 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.

true Başlangıçta yeterli bellek yoksa tam engelleyici çöp toplamayı önlemek için ayarının disallowFullBlockingGC ayarlanması yük dengeleme senaryolarında en kullanışlı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 dengeleyicinin istekleri diğer sistemlere yönlendirmesini sağlayabilir. Ardından yöntemini çağırarak istekleri işlemediğinde tam bir engelleme çöp toplama işlemi Collect(Int32, GCCollectionMode, Boolean, Boolean) gerçekleştirebilir.

Önemli

Yöntemine çağrıları TryStartNoGCRegion iç içe yerleştiremezsiniz ve yalnızca çalışma zamanı şu anda GC bölgesi gecikme modunda değilse yöntemini çağırmalısınız EndNoGCRegion . Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, izleyen çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrı TryStartNoGCRegion olduğu için EndNoGCRegion çağrıların 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)

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

Atık 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ü bir segmentin boyutu hakkında bilgi için Çöp Toplamanın Temelleri makalesinin "Kısa ömürlü nesiller ve segmentler" bölümüne bakın.

Döndürülenler

Boolean

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 toplamaya izin veren, atık toplayıcıyı GC bölgesi gecikme moduna 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.

Önemli

Yöntemine çağrıları TryStartNoGCRegion iç içe yerleştiremezsiniz ve yalnızca çalışma zamanı şu anda GC bölgesi gecikme modunda değilse yöntemini çağırmalısınız EndNoGCRegion . Başka bir deyişle, birden çok kez çağırmamalısınız TryStartNoGCRegion (ilk yöntem çağrısından sonra, izleyen çağrılar başarılı olmaz) ve yalnızca başarılı olan ilk çağrı TryStartNoGCRegion olduğu için EndNoGCRegion çağrıların 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