Aracılığıyla paylaş


HandleRef Yapı

Tanım

Platform çağrısı kullanılarak yönetilmeyen koda geçirilen bir kaynağa tanıtıcı tutan yönetilen nesneyi sarmalar.

public value class HandleRef
public readonly struct HandleRef
public struct HandleRef
[System.Runtime.InteropServices.ComVisible(true)]
public struct HandleRef
type HandleRef = struct
[<System.Runtime.InteropServices.ComVisible(true)>]
type HandleRef = struct
Public Structure HandleRef
Devralma
HandleRef
Öznitelikler

Açıklamalar

Önemli

.NET Framework 2.0'dan başlayarak, sınıfın HandleRef işlevselliği sınıf ve türetilmiş sınıfları ve sınıfı tarafından CriticalHandle değiştirilmiştirSafeHandle.

Yönetilen bir nesneyi çağırmak için platform çağrısı kullanırsanız ve platform çağırma çağrısından sonra nesneye başka bir yerde başvurulmazsa, atık toplayıcının yönetilen nesneyi sonlandırması mümkündür. Bu eylem kaynağı serbest bırakır ve tanıtıcıyı geçersiz kılarak platform çağırma çağrısının başarısız olmasına neden olur. Bir tanıtıcıyı ile HandleRef sarmalama, platform çağırma çağrısı tamamlanana kadar yönetilen nesnenin çöp toplanmaması garanti eder. Platform çağırma hizmetlerinin açıklaması için bkz . Yönetilmeyen DLL İşlevlerini Kullanma.

HandleRef gibi GCHandledeğer türü, birlikte çalışma sıralayıcısı tarafından tanınan özel bir türdür. Normal, sabitlenmemiş GCHandle bir durum da zamansız çöp toplamayı engeller, ancak HandleRef daha iyi performans sağlar. Platform çağırma çağrısı süresi boyunca bir nesneyi canlı tutmak için kullanmak tercih edilir, ancak HandleRef yöntemini aynı amaç için de kullanabilirsiniz GC.KeepAlive .

Oluşturucu HandleRef iki parametre alır: sarmalayıcıyı temsil eden bir Object ve yönetilmeyen tanıtıcıyı temsil eden bir IntPtr . Birlikte çalışma sıralayıcısı yönetilmeyen koda yalnızca tanıtıcıyı geçirir ve sarmalayıcının (oluşturucusunun HandleRefilk parametresi olarak geçirilir) çağrı süresi boyunca etkin kalmasını garanti eder.

Oluşturucular

HandleRef(Object, IntPtr)

Sarmalama nesnesi ve yönetilmeyen kod tarafından kullanılan kaynağa tanıtıcı ile sınıfının yeni bir örneğini HandleRef başlatır.

Özellikler

Handle

Bir kaynağın tutamacını alır.

Wrapper

Tanıtıcıyı bir kaynakta tutan nesneyi alır.

Yöntemler

ToIntPtr(HandleRef)

Bir HandleRef nesnenin iç tamsayı gösterimini döndürür.

İşleçler

Explicit(HandleRef to IntPtr)

Tanıtıcıyı belirtilen HandleRef nesnenin kaynağına döndürür.

Şunlara uygulanır

Ayrıca bkz.