GC.TryStartNoGCRegion Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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 true
istekleri kabul etmeye hazır olarak raporlayabilir ve döndürürse false
yü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
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
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 true
istekleri kabul etmeye hazır olarak raporlayabilir ve döndürürse false
yü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
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.