Aracılığıyla paylaş


DependentHandle Yapı

Tanım

Bağımlı bir çöp toplama tutamacını temsil eder. Bu sap, hedef örneğe güçlü bir referans göstermeden, hedef nesne örneği de hayatta olduğu sürece bağımlı nesne örneğini koşullu olarak canlı tutacaktır.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Devralma
DependentHandle
Uygulamalar

Açıklamalar

DependentHandle Hedef olarak belirli bir nesne örneğine sahip bir değer, başka güçlü başvurular yoksa hedefin canlı tutulmasına neden olmaz, ancak hedef etkin olduğu sürece bağımlı nesne örneği için bunu yapar.

Bu türün kullanılması kavramsal olarak belirli bir hedef nesne örneğine zayıf başvuruya sahip olmakla eşdeğerdir A, bu nesnenin bağımlı bir nesne örneğine bir alan veya özelliğe (veya başka bir güçlü başvuruya) sahip olması.

Tür DependentHandle iş parçacığı açısından güvenli değildir ve diğer API'lerle eşzamanlı olarak çağrılmamasını sağlamak Dispose() tüketiciler tarafından sorumludur. Bunun yapılmaması tanımsız davranışa neden olur.

IsAllocatedBunun yerine , Target, Dependentve TargetAndDependent özellikleri iş parçacığı açısından güvenlidir ve eşzamanlı olarak çağrılmazsa Dispose() da kullanılması güvenlidir.

Oluşturucular

DependentHandle(Object, Object)

Belirtilen bağımsız değişkenlerle yapının DependentHandle yeni bir örneğini başlatır.

Özellikler

Dependent

Geçerli tanıtıcı için bağımlı nesne örneğini alır veya ayarlar.

IsAllocated

Bu örneğin ile DependentHandle(Object, Object) oluşturulduğunu ve henüz atılmadığını belirten bir değer alır.

Target

Geçerli tanıtıcı için hedef nesne örneğini alır veya ayarlar. Hedef yalnızca örnek oluşturulduktan sonra bir null değere DependentHandle ayarlanabilir. Bunun yapılması, geri dönmeye null başlamaya ve önceki hedef hala etkin olsa bile toplamaya uygun hale gelmesine neden Dependent olur.

TargetAndDependent

Atomik işlem olarak hem hem Dependent de Target (varsa) değerlerini alır. Yani, eş zamanlı olarak olarak ayarlansa Targetnullbile, bu yöntemi çağırmak hem hedef hem de bağımlı için döndürür null veya önceki her iki değeri döndürür. Dependent Ve bunun yerine bu senaryoda sıralı olarak kullanılmışsaTarget, bazen önceki hedefi başarıyla almak mümkün olabilir, ancak sonra bağımlıyı elde etmek başarısız olabilir.

Yöntemler

Dispose()

Uygulama tarafından tanımlanan, yönetilmeyen kaynakları serbest bırakma, salma veya sıfırlama ile ilişkili görevleri gerçekleştirir.

Şunlara uygulanır