CriticalHandle Класс

Определение

Представляет класс-оболочку для обработки ресурсов.

public ref class CriticalHandle abstract : IDisposable
public ref class CriticalHandle abstract : System::Runtime::ConstrainedExecution::CriticalFinalizerObject, IDisposable
[System.Security.SecurityCritical]
public abstract class CriticalHandle : IDisposable
public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, IDisposable
[System.Security.SecurityCritical]
public abstract class CriticalHandle : System.Runtime.ConstrainedExecution.CriticalFinalizerObject, IDisposable
[<System.Security.SecurityCritical>]
type CriticalHandle = class
    interface IDisposable
type CriticalHandle = class
    inherit CriticalFinalizerObject
    interface IDisposable
[<System.Security.SecurityCritical>]
type CriticalHandle = class
    inherit CriticalFinalizerObject
    interface IDisposable
Public MustInherit Class CriticalHandle
Implements IDisposable
Public MustInherit Class CriticalHandle
Inherits CriticalFinalizerObject
Implements IDisposable
Наследование
CriticalHandle
Наследование
Производный
Атрибуты
Реализации

Комментарии

Класс CriticalHandle аналогичен классу SafeHandle , за исключением того, что SafeHandle реализует подсчет ссылок. Вы можете использовать CriticalHandle вместо SafeHandle решения вопросов о производительности, когда вы можете обеспечить необходимую синхронизацию более эффективно.

CriticalHandle Так как класс не выполняет подсчет ссылок, он не обеспечивает защиту от атак повторной обработки атак безопасности. Так как алгоритм подсчета ссылок неявно сериализует операции, также теряется определенная степень безопасности потока. При вызове IDisposable.Dispose или Close методе во время операции, которая использует дескриптор, выдается в другом потоке или при вызове IDisposable.DisposeClose или из двух потоков одновременно, результаты не детерминируются. Класс CriticalHandle по-прежнему предоставляет гарантированное критическое завершение, предоставленное классом CriticalFinalizerObject .

Конструкторы

Имя Описание
CriticalHandle(IntPtr)

Инициализирует новый экземпляр CriticalHandle класса с указанным недопустимым значением дескриптора.

Поля

Имя Описание
handle

Указывает дескриптор, который необходимо упаковать.

Свойства

Имя Описание
IsClosed

Возвращает значение, указывающее, закрыт ли дескриптор.

IsInvalid

При переопределении в производном классе получает значение, указывающее, является ли значение дескриптора недопустимым.

Методы

Имя Описание
Close()

Помечает дескриптор для освобождения и освобождения ресурсов.

Dispose()

Освобождает все ресурсы, используемые параметром CriticalHandle.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые CriticalHandle классом, указывающим, следует ли выполнять обычную операцию удаления.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Освобождает все ресурсы, связанные с дескриптором.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ReleaseHandle()

При переопределении в производном классе выполняет код, необходимый для освобождения дескриптора.

SetHandle(IntPtr)

Задает дескриптор указанному предварительно существующему дескриптору.

SetHandleAsInvalid()

Помечает дескриптор как недопустимый.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к

См. также раздел