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) |