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