DependentHandle 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
依存ガベージ コレクション ハンドルを表します。 ターゲット オブジェクト インスタンスへの厳密な参照を表さずに、ターゲット オブジェクト インスタンスが有効である限り、ハンドルは条件付きで依存オブジェクト インスタンスを維持します。
public value class DependentHandle : IDisposable
public struct DependentHandle : IDisposable
type DependentHandle = struct
interface IDisposable
Public Structure DependentHandle
Implements IDisposable
- 継承
- 実装
注釈
特定のオブジェクト インスタンスをターゲットとして持つ DependentHandle 値は、ターゲットへの他の厳密な参照がない場合は、ターゲットを維持しませんが、ターゲットが有効である限り、依存オブジェクト インスタンスに対して有効になります。
この型の使用は、概念的には、特定のターゲット オブジェクト インスタンス A への弱い参照を持ち、そのオブジェクトに依存オブジェクト インスタンス B へのフィールドまたはプロパティ (またはその他の強い参照) を持つことと同じです。
DependentHandle型はスレッド セーフではなく、コンシューマーは、Dispose()が他の API と同時に呼び出されないようにする責任があります。 これを行わないと、未定義の動作が発生します。
代わりに、 IsAllocated、 Target、 Dependent、および TargetAndDependent のプロパティはスレッド セーフであり、 Dispose() が同時に呼び出されない場合にも安全に使用できます。
コンストラクター
| 名前 | 説明 |
|---|---|
| DependentHandle(Object, Object) |
指定した引数を使用して、 DependentHandle 構造体の新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Dependent |
現在のハンドルの依存オブジェクト インスタンスを取得または設定します。 |
| IsAllocated |
このインスタンスが DependentHandle(Object, Object) で構築され、まだ破棄されていないかどうかを示す値を取得します。 |
| Target |
現在のハンドルのターゲット オブジェクト インスタンスを取得または設定します。 ターゲットは、DependentHandle インスタンスが作成された後にのみ、 |
| TargetAndDependent |
アトミック操作として Target と Dependent (使用可能な場合) の両方の値を取得します。
つまり、 Target が同時に |
メソッド
| 名前 | 説明 |
|---|---|
| Dispose() |
アンマネージド リソースの解放、解放、またはリセットに関連付けられているアプリケーション定義のタスクを実行します。 |