Поделиться через


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.Dispose или Close из двух потоков результаты будут недетерминированными. Класс 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)

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

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