Share via


DependentHandle Struktur

Definisi

Mewakili handel pengumpulan sampah dependen. Handel akan secara kondisional menjaga instans objek dependen tetap hidup selama instans objek target juga hidup, tanpa mewakili referensi yang kuat ke instans target.

public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
    interface IDisposable
Public Structure DependentHandle
Implements IDisposable
Warisan
DependentHandle
Penerapan

Keterangan

DependentHandle Nilai dengan instans objek tertentu sebagai target tidak akan menyebabkan target tetap hidup jika tidak ada referensi kuat lainnya, tetapi akan melakukannya untuk instans objek dependen selama target masih hidup.

Menggunakan jenis ini secara konseptual setara dengan memiliki referensi lemah ke instans objek target tertentu A, dengan objek tersebut memiliki bidang atau properti (atau referensi kuat lainnya) ke instans objek dependen B.

Jenisnya DependentHandle tidak aman untuk utas, dan konsumen bertanggung jawab untuk memastikan bahwa Dispose() itu tidak disebut bersamaan dengan API lain. Tidak melakukannya menghasilkan perilaku yang tidak terdefinis.

Properti IsAllocated, Target, Dependent, dan TargetAndDependent sebaliknya aman untuk utas, dan aman untuk digunakan jika Dispose() tidak dipanggil secara bersamaan juga.

Konstruktor

DependentHandle(Object, Object)

Menginisialisasi instans baru struct DependentHandle dengan argumen yang ditentukan.

Properti

Dependent

Mendapatkan atau mengatur instans objek dependen untuk handel saat ini.

IsAllocated

Mendapatkan nilai yang menunjukkan apakah instans ini dibangun dengan DependentHandle(Object, Object) dan belum dibuang.

Target

Mendapatkan atau mengatur instans objek target untuk handel saat ini. Target hanya dapat diatur ke null nilai setelah DependentHandle instans dibuat. Melakukannya akan menyebabkan Dependent mulai kembali null juga, dan menjadi memenuhi syarat untuk koleksi bahkan jika target sebelumnya masih hidup.

TargetAndDependent

Mendapatkan nilai dan TargetDependent (jika tersedia) sebagai operasi atomik. Artinya, bahkan jika Target diatur secara bersamaan ke null, memanggil metode ini akan kembali null untuk target dan dependen, atau mengembalikan kedua nilai sebelumnya. Jika Target dan Dependent digunakan secara berurutan dalam skenario ini, terkadang berhasil mengambil target sebelumnya, tetapi kemudian gagal mendapatkan dependen.

Metode

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola.

Berlaku untuk