次の方法で共有


GCHandleType 列挙体

GCHandle クラスが割り当てることのできるハンドルの種類を表します。

<Serializable>
Public Enum GCHandleType
[C#]
[Serializable]
public enum GCHandleType
[C++]
[Serializable]
__value public enum GCHandleType
[JScript]
public
   Serializable
enum GCHandleType

メンバ

メンバ名 説明
Normal

.NET Compact Framework でもサポート。

この種類のハンドルは、非透過ハンドルを表します。つまり、このハンドルを使用して、その中に格納されている固定化されたオブジェクトのアドレスを解決することはできません。この種類のハンドルは、オブジェクトを追跡し、ガベージ コレクタによって収集されないようにするために使用できます。マネージ オブジェクトへの、ガベージ コレクタが検出できない唯一の参照をアンマネージ クライアントが保持している場合、この列挙体メンバを使用すると便利です。
Pinned

.NET Compact Framework でもサポート。

この種類ハンドルは Normal に似ていますが、このハンドルを使用した場合は、固定オブジェクトのアドレスを取得できます。これにより、ガベージ コレクタがそのオブジェクトを移動できなくなるため、ガベージ コレクタの効率は低下することになります。割り当てられたハンドルをできる限り早く解放するには、 Free メソッドを使用します。
Weak

.NET Compact Framework でもサポート。

この種類のハンドルはオブジェクトを追跡するために使用しますが、そのオブジェクトを収集できるようにもします。オブジェクトが収集された場合、 GCHandle インスタンスの内容は 0 に設定されます。Weak 参照はファイナライザの実行前に 0 に設定されるため、ファイナライザがそのオブジェクトを復活させた場合でも、Weak 参照は 0 のままになります。
WeakTrackResurrection

.NET Compact Framework でもサポート。

この種類のハンドルは Weak に似ていますが、ファイナライズ中にオブジェクトが復活された場合でも、このハンドルは 0 には設定されません。

必要条件

名前空間: System.Runtime.InteropServices

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

System.Runtime.InteropServices 名前空間 | GCHandle