HandleRef Yapı
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.
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
- Ö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. |