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

Important

sınıfının işlevselliğiHandleRef, sınıfı ve türetilmiş sınıfları ve sınıfı tarafından SafeHandle değiştirilmiştirCriticalHandle.

Yönetilen bir nesneyi çağırmak için platform çağrısı kullanırsanız ve platform ç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 de zamansız çöp toplamayı engeller, ancak HandleRef daha iyi performans sağlar. Bir nesneyi platform çağırma çağrısı süresi boyunca canlı tutmak için kullanmak tercih edilir, ancak HandleRef yöntemini aynı amaçla da 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

Name Description
HandleRef(Object, IntPtr)

Sarmalanan 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

Name Description
Handle

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

Wrapper

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

Yöntemler

Name Description
ToIntPtr(HandleRef)

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

İşleçler

Name Description
Explicit(HandleRef to IntPtr)

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

Şunlara uygulanır

Ayrıca bkz.