EventWaitHandle.TryOpenExisting Метод

Определение

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

Перегрузки

Имя Описание
TryOpenExisting(String, EventWaitHandle)

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

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

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

TryOpenExisting(String, NamedWaitHandleOptions, EventWaitHandle)

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

TryOpenExisting(String, EventWaitHandle)

Исходный код:
EventWaitHandle.cs
Исходный код:
EventWaitHandle.cs
Исходный код:
EventWaitHandle.cs
Исходный код:
EventWaitHandle.cs
Исходный код:
EventWaitHandle.cs

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

public:
 static bool TryOpenExisting(System::String ^ name, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle? result);
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle result);
public static bool TryOpenExisting(string name, out System.Threading.EventWaitHandle? result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * EventWaitHandle -> bool
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * EventWaitHandle -> bool
static member TryOpenExisting : string * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As EventWaitHandle) As Boolean

Параметры

name
String

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

result
EventWaitHandle

При возврате этого метода содержит EventWaitHandle объект, представляющий именованное событие синхронизации, если вызов выполнен успешно или null если вызов завершился сбоем. Этот параметр рассматривается как неинициализированный.

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

true Значение , если именованное событие синхронизации было успешно открыто; falseв противном случае . В некоторых случаях false может быть возвращено недопустимое имя.

Атрибуты

Исключения

name — пустая строка.

–или–

только .NET Framework: name больше MAX_PATH (260 символов).

name равно null.

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

–или–

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

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

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

Комментарии

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

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

Чтобы создать системное событие, если оно еще не существует, используйте один из EventWaitHandle конструкторов, имеющих name параметр.

Если вы не уверены, существует ли именованное событие синхронизации, используйте эту перегрузку метода вместо OpenExisting(String) перегрузки метода, которая вызывает исключение, если событие синхронизации не существует.

Эта перегрузка метода эквивалентна вызову TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) перегрузки метода и указанию EventWaitHandleRights.Synchronize и EventWaitHandleRights.Modify правам, объединенным с помощью побитовой операции OR. Указание флага EventWaitHandleRights.Synchronize позволяет потоку ждать именованного системного события и указывать EventWaitHandleRights.Modify флаг, позволяющий потоку вызывать Set методы и Reset методы.

Несколько вызовов этого метода, которые используют одно и то же значение, name не обязательно возвращают один и тот же EventWaitHandle объект, хотя возвращаемые объекты представляют то же именованное системное событие.

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

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

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

public:
 static bool TryOpenExisting(System::String ^ name, System::Security::AccessControl::EventWaitHandleRights rights, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, System.Security.AccessControl.EventWaitHandleRights rights, out System.Threading.EventWaitHandle result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * System.Security.AccessControl.EventWaitHandleRights * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, rights As EventWaitHandleRights, ByRef result As EventWaitHandle) As Boolean

Параметры

name
String

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

rights
EventWaitHandleRights

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

result
EventWaitHandle

При возврате этого метода содержит EventWaitHandle объект, представляющий именованное событие синхронизации, если вызов выполнен успешно или null если вызов завершился сбоем. Этот параметр рассматривается как неинициализированный.

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

true Значение , если именованное событие синхронизации было успешно открыто; falseв противном случае . В некоторых случаях false может быть возвращено недопустимое имя.

Атрибуты

Исключения

name — пустая строка.

–или–

только .NET Framework: name больше MAX_PATH (260 символов).

name равно null.

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

–или–

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

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

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

Комментарии

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

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

Чтобы создать системное событие, если оно еще не существует, используйте один из EventWaitHandle конструкторов, имеющих name параметр.

Если вы не уверены, существует ли именованное событие синхронизации, используйте эту перегрузку метода вместо OpenExisting(String, EventWaitHandleRights) перегрузки метода, которая вызывает исключение, если событие синхронизации не существует.

Параметр rights должен включать EventWaitHandleRights.Synchronize флаг, чтобы потоки могли ожидать события, а EventWaitHandleRights.Modify флаг позволяет потокам вызывать Set и Reset методы.

Несколько вызовов этого метода, которые используют одно и то же значение, name не обязательно возвращают один и тот же EventWaitHandle объект, хотя возвращаемые объекты представляют то же именованное системное событие.

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

TryOpenExisting(String, NamedWaitHandleOptions, EventWaitHandle)

Исходный код:
EventWaitHandle.cs
Исходный код:
EventWaitHandle.cs

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

public:
 static bool TryOpenExisting(System::String ^ name, System::Threading::NamedWaitHandleOptions options, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, System.Threading.NamedWaitHandleOptions options, out System.Threading.EventWaitHandle? result);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * System.Threading.NamedWaitHandleOptions * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, options As NamedWaitHandleOptions, ByRef result As EventWaitHandle) As Boolean

Параметры

name
String

Имя объекта синхронизации для открытия и совместного использования с другими процессами. Имя чувствительно к регистру.

options
NamedWaitHandleOptions

Параметры области для именованного дескриптора. По умолчанию доступ ограничен текущим пользователем и текущим сеансом. Указанные параметры могут повлиять на пространство имен для имени и доступа к базовому объекту дескриптора.

result
EventWaitHandle

При возврате этого метода содержит EventWaitHandle объект, представляющий именованное событие синхронизации, если вызов выполнен успешно или null если вызов завершился сбоем. Этот параметр рассматривается как неинициализированный.

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

true Значение , если именованное событие синхронизации было успешно открыто; falseв противном случае . В некоторых случаях false может быть возвращено недопустимое имя.

Атрибуты

Исключения

name — пустая строка.

name равно null.

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

–или–

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

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

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

Комментарии

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

Чтобы создать системное событие, если оно еще не существует, используйте один из EventWaitHandle конструкторов, имеющих name параметр.

Если вы не уверены, существует ли именованное событие синхронизации, используйте эту перегрузку метода вместо OpenExisting(String) перегрузки метода, которая вызывает исключение, если событие синхронизации не существует.

Несколько вызовов этого метода, которые используют одно и то же значение, name не обязательно возвращают один и тот же EventWaitHandle объект, хотя возвращаемые объекты представляют то же именованное системное событие.

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