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


EventWaitHandleAcl.Create Метод

Определение

Получает или создает экземпляр EventWaitHandle, позволяя при необходимости указать экземпляр EventWaitHandleSecurity, чтобы задать его при создании события.

public:
 static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create (bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle

Параметры

initialState
Boolean

Значение true задает сигнализированное начальное состояние именованного события, если последнее создано в результате этого вызова; false задает несигнализированное состояние.

mode
EventResetMode

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

name
String

Имя, если объект синхронизации должен использоваться совместно с другими процессами. В противном случае — null или пустая строка. Имя указано с учетом регистра. Символ обратной косой черты (\) зарезервирован и может использоваться только для указания пространства имен. Дополнительные сведения о пространствах имен см. в разделе примечаний. В зависимости от операционной системы могут быть дополнительные ограничения на имя. Например, в операционных системах под управлением Unix имя после исключения пространства имен должно быть допустимым именем файла.

createdNew
Boolean

Когда данный метод возвращает значение, этому аргументу всегда задается значение true, если создается локальное событие (то есть, если name имеет значение null или Empty). Если name имеет допустимое непустое значение, этот аргумент получает значение true при создании системного события либо значение false в случае обнаружения существующего системного события с таким именем.

eventSecurity
EventWaitHandleSecurity

Применение необязательной защиты управления доступом Windows.

Возвращаемое значение

Объект, представляющий запрошенный дескриптор ожидания события.

Исключения

Значение перечисления mode вышло за допустимый диапазон.

- или -

Только в .NET Framework. name превышает значение MAX_PATH (260 символов).

Значение перечисления mode вышло за допустимый диапазон. В некоторых случаях вместо этого выдается исключение ArgumentException.

name недопустим. Это исключение может возникнуть по разным причинам, включая некоторые ограничения, установленные операционной системой (например, в отношении использования неизвестных префиксов или недопустимых символов). Обратите внимание, что в имени и общих префиксах Global\" и "Local\" учитывается регистр.

- или -

Произошла другая ошибка. Дополнительные сведения можно получить с помощью свойства HResult.

Только в Windows. Для name указано неизвестное пространство имен. Дополнительные сведения см. в статье Имена объектов.

Слишком длинное значение name. Ограничения длины могут зависеть от операционной системы или конфигурации.

Не удается создать объект синхронизации с указанным значением для параметра name. Возможно, другой объект синхронизации имеет такое же имя.

Именованное событие уже существует, но пользователь не имеет требуемых прав для безопасного доступа.

Только .NET Framework: длина name превышает MAX_PATH (260 символов).

Комментарии

Для name указания пространства имен может быть задан Global\ префикс или Local\ . При указании Global пространства имен объект синхронизации может использоваться совместно с любыми процессами в системе. При указании Local пространства имен, которое также используется по умолчанию, если пространство имен не указано, объект синхронизации может быть совместно использоваться процессами в одном сеансе. В Windows сеанс является сеансом входа, а службы обычно выполняются в другом неинтерактивном сеансе. В операционных системах, подобных Unix, каждая оболочка имеет собственный сеанс. Объекты локальной синхронизации сеанса могут быть подходящими для синхронизации между процессами с отношением "родитель-потомок", где все они выполняются в одном сеансе. Дополнительные сведения об именах объектов синхронизации в Windows см. в разделе Имена объектов.

name Если предоставляется и объект синхронизации запрошенного типа уже существует в пространстве имен, открывается существующий объект синхронизации. Если объект синхронизации другого типа уже существует в пространстве имен, WaitHandleCannotBeOpenedException возникает исключение . В противном случае создается новый объект синхронизации.

Внимание!

По умолчанию именованное событие не ограничивается пользователем, который его создал. Другие пользователи могут открывать и использовать событие, в том числе вмешиваться в событие, устанавливая или сбрасывая его ненадлежащим образом. Чтобы ограничить доступ для определенных пользователей, можно передать при создании именованного EventWaitHandleSecurity события. Избегайте использования именованных событий без ограничений доступа в системах, в которых могут выполняться ненадежные пользователи, выполняющие код.

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