Marshal.CleanupUnusedObjectsInCurrentContext 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.
Geçerli bağlamda ayrılan tüm Çalışma Zamanı Çağrılabilen Sarmalayıcıları (RCW) temizlemek için çalışma zamanını bildirir.
public:
static void CleanupUnusedObjectsInCurrentContext();
public static void CleanupUnusedObjectsInCurrentContext ();
[System.Security.SecurityCritical]
public static void CleanupUnusedObjectsInCurrentContext ();
static member CleanupUnusedObjectsInCurrentContext : unit -> unit
[<System.Security.SecurityCritical>]
static member CleanupUnusedObjectsInCurrentContext : unit -> unit
Public Shared Sub CleanupUnusedObjectsInCurrentContext ()
- Öznitelikler
Açıklamalar
Birlikte çalışma sistemi, RCW'leri temizlemeye çalışırken iletileri pompalar. Bu, tek iş parçacıklı daire (STA) RCW'ler için temizlemenin, yeterince sık pompalanmamış uygulamalar da dahil olmak üzere tüm uygulamalarda gerçekleşmesini sağlar. Ancak, pompayı uygun şekilde kullanan bazı uygulamalar pompalamanın gerçekleştiği yere çok duyarlıdır. Birlikte çalışma sistemi bu uygulamalarda, beklenmeyen yerlerde iletiler pompaladığında, uygulama tanılanabilmesi zor olan yeniden giriş sorunlarıyla karşılaşabilir. Bu nedenle, uygulamaların belirli bir STA için kendi pompalarını kontrol edebilmesi ve RW'lerin temizlenmesini kontrol edebilmesi gerekir.
Ancak geliştiriciler genellikle uygulamalarında iş parçacıklarının yalnızca bir alt kümesini denetler ve bu nedenle tüm iş parçacıklarının uygun şekilde pompalandığından emin olamaz.
Bu sorunu çözmek için:
RCW'lerin Thread.DisableComObjectEagerCleanup otomatik temizlemesini ve iş parçacığı başına gerçekleşen ileti pompalama işlemini kapatmak için yöntemini kullanın. Bu, geliştiricilerin otomatik temizlemeyi ve ilgili ileti pompalama işlemini geri çevirmesine olanak tanır.
Çalışma zamanına CleanupUnusedObjectsInCurrentContext geçerli bağlamda ayrılan tüm RCW'leri temizlemesini bildirmek için yöntemini kullanın. Bu yardımcı yöntem, geliştiricilerin çalışma zamanının geçerli bağlamda ne zaman temizleme gerçekleştireceklerini tam olarak denetlemesine olanak tanır.