クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
CriticalHandle クラス

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
CriticalHandle クラス

更新 : 2007 年 11 月

ハンドル リソースのラッパー クラスを表します。

名前空間 :  System.Runtime.InteropServices
アセンブリ :  mscorlib (mscorlib.dll 内)

Visual Basic (宣言)
<SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode := True)> _
<SecurityPermissionAttribute(SecurityAction.InheritanceDemand, UnmanagedCode := True)> _
Public MustInherit Class CriticalHandle _
    Inherits CriticalFinalizerObject _
    Implements IDisposable
Visual Basic (使用法)
Dim instance As CriticalHandle
C#
[SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode = true)]
[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, UnmanagedCode = true)]
public abstract class CriticalHandle : CriticalFinalizerObject, 
    IDisposable
Visual C++
[SecurityPermissionAttribute(SecurityAction::LinkDemand, UnmanagedCode = true)]
[SecurityPermissionAttribute(SecurityAction::InheritanceDemand, UnmanagedCode = true)]
public ref class CriticalHandle abstract : public CriticalFinalizerObject, 
    IDisposable
J#
/** @attribute SecurityPermissionAttribute(SecurityAction.LinkDemand, UnmanagedCode = true) */
/** @attribute SecurityPermissionAttribute(SecurityAction.InheritanceDemand, UnmanagedCode = true) */
public abstract class CriticalHandle extends CriticalFinalizerObject implements IDisposable
JScript
public abstract class CriticalHandle extends CriticalFinalizerObject implements IDisposable

CriticalHandle クラスは、SafeHandle クラスと似ていますが、SafeHandle が参照カウントを実装する点が異なります。独自に必要な同期化をより効率的に提供できる場合には、SafeHandle の代わりに CriticalHandle を使用することで、パフォーマンスの問題に対処できます。

CriticalHandle クラスは参照カウントを実行しないため、ハンドル リサイクルによるセキュリティ攻撃に対する防御が用意されていません。参照カウント アルゴリズムは暗黙的に操作をシリアル化するので、ある程度のスレッド セーフも失われます。ハンドルを使用する操作が別のスレッドで保留されている間に IDisposable..::.Dispose メソッドまたは Close メソッドを呼び出した場合、または同時に 2 つのスレッドから IDisposable..::.Dispose または Close を呼び出した場合、結果は非決定的となります。CriticalHandle クラスは、引き続き CriticalFinalizerObject クラスが提供する保証された重大な終了処理も行います。

この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0、2.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker