EventWaitHandle.TryOpenExisting Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Abre um evento de sincronização especificado com nome, se já existir, e devolve um valor que indica se a operação foi bem-sucedida.
Sobrecargas
| Name | Description |
|---|---|
| TryOpenExisting(String, EventWaitHandle) |
Abre o evento de sincronização nomeado especificado, se já existir, e devolve um valor que indica se a operação foi bem-sucedida. |
| TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) |
Abre o evento de sincronização nomeado especificado, se já existir, com o acesso de segurança desejado, e devolve um valor que indica se a operação teve sucesso. |
| TryOpenExisting(String, NamedWaitHandleOptions, EventWaitHandle) |
Abre o evento de sincronização nomeado especificado, se já existir, e devolve um valor que indica se a operação foi bem-sucedida. Se as opções estiverem definidas apenas para o utilizador atual, os controlos de acesso do objeto são verificados para o utilizador que chama. |
TryOpenExisting(String, EventWaitHandle)
- Origem:
- EventWaitHandle.cs
- Origem:
- EventWaitHandle.cs
- Origem:
- EventWaitHandle.cs
- Origem:
- EventWaitHandle.cs
- Origem:
- EventWaitHandle.cs
Abre o evento de sincronização nomeado especificado, se já existir, e devolve um valor que indica se a operação foi bem-sucedida.
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
Parâmetros
- name
- String
O nome do objeto de sincronização a ser aberto e partilhado com outros processos. O nome é sensível a maiúsculas e minúsculas. O carácter barra inversa (\) é reservado e só pode ser usado para especificar um namespace. Para mais informações sobre namespaces, consulte a secção de observações. Pode haver restrições adicionais ao nome dependendo do sistema operativo. Por exemplo, em sistemas operativos baseados em Unix, o nome após excluir o espaço de nomes deve ser um nome de ficheiro válido.
- result
- EventWaitHandle
Quando este método regressa, contém um EventWaitHandle objeto que representa o evento de sincronização nomeado caso a chamada tenha tido sucesso, ou null se a chamada tenha falhado. Este parâmetro é tratado como não inicializado.
Devoluções
true se o evento de sincronização nomeado fosse aberto com sucesso; caso contrário, false. Em alguns casos, false pode ser devolvido por nomes inválidos.
- Atributos
Exceções
name é uma corda vazia.
-ou-
.NET Framework apenas: name é mais longo que MAX_PATH (260 caracteres).
name é null.
name é inválido. Isto pode dever-se a várias razões, incluindo algumas restrições que podem ser impostas pelo sistema operativo, como um prefixo desconhecido ou caracteres inválidos. Note que o nome e os prefixos comuns "Global\" e "Local\" são sensíveis a maiúsculas minúsculas. Para alguns nomes inválidos, o método pode ser retornado false em vez disso.
-ou-
Houve outro erro. A HResult propriedade pode fornecer mais informações.
O name é demasiado longo. As restrições de comprimento podem depender do sistema operativo ou da configuração.
O evento nomeado existe, mas o utilizador não tem o acesso de segurança desejado.
Observações
Podem name ser precedidos por Global\ ou Local\ para especificar um namespace. Quando o Global namespace é especificado, o objeto de sincronização pode ser partilhado com quaisquer processos no sistema. Quando o Local namespace é especificado, que também é o padrão quando não há namespace especificado, o objeto de sincronização pode ser partilhado com processos na mesma sessão. No Windows, uma sessão é uma sessão de login, e os serviços normalmente correm numa sessão diferente e não interativa. Em sistemas operativos do tipo Unix, cada shell tem a sua própria sessão. Objetos de sincronização local de sessão podem ser apropriados para sincronizar processos com uma relação pai/filho, onde todos correm na mesma sessão. Para mais informações sobre nomes de objetos de sincronização no Windows, veja Object Names.
Se existir um objeto de sincronização do tipo solicitado no namespace, o objeto de sincronização existente é aberto. Se um objeto de sincronização não existir no namespace, ou se existir um objeto de sincronização de outro tipo no namespace, false é devolvido.
Para criar o evento do sistema quando este ainda não existe, use um dos EventWaitHandle construtores que tenha um name parâmetro.
Se não tiver a certeza se existe um evento de sincronização nomeado, use esta sobrecarga de métodos em vez da OpenExisting(String) sobrecarga de métodos, que gera uma exceção caso o evento de sincronização não exista.
Esta sobrecarga de métodos é equivalente a chamar o TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) método overload e especificar EventWaitHandleRights.Synchronize e os direitos EventWaitHandleRights.Modify , combinados usando a operação OR bit a bit. Especificar a EventWaitHandleRights.Synchronize flag permite que uma thread espere pelo evento do sistema nomeado, e especificar a EventWaitHandleRights.Modify flag permite que a thread chame os Set métodos and Reset .
Múltiplas chamadas a este método que usam o mesmo valor para name não retornam necessariamente o mesmo EventWaitHandle objeto, embora os objetos que são devolvidos representem o mesmo evento do sistema nomeado.
Aplica-se a
TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)
Abre o evento de sincronização nomeado especificado, se já existir, com o acesso de segurança desejado, e devolve um valor que indica se a operação teve sucesso.
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
Parâmetros
- name
- String
O nome do objeto de sincronização a ser aberto e partilhado com outros processos. O nome é sensível a maiúsculas e minúsculas. O carácter barra inversa (\) é reservado e só pode ser usado para especificar um namespace. Para mais informações sobre namespaces, consulte a secção de observações. Pode haver restrições adicionais ao nome dependendo do sistema operativo. Por exemplo, em sistemas operativos baseados em Unix, o nome após excluir o espaço de nomes deve ser um nome de ficheiro válido.
- rights
- EventWaitHandleRights
Uma combinação bit a bit dos valores de enumeração que representam o acesso de segurança desejado.
- result
- EventWaitHandle
Quando este método regressa, contém um EventWaitHandle objeto que representa o evento de sincronização nomeado caso a chamada tenha tido sucesso, ou null se a chamada tenha falhado. Este parâmetro é tratado como não inicializado.
Devoluções
true se o evento de sincronização nomeado fosse aberto com sucesso; caso contrário, false. Em alguns casos, false pode ser devolvido por nomes inválidos.
- Atributos
Exceções
name é uma corda vazia.
-ou-
.NET Framework apenas: name é mais longo que MAX_PATH (260 caracteres).
name é null.
name é inválido. Isto pode dever-se a várias razões, incluindo algumas restrições que podem ser impostas pelo sistema operativo, como um prefixo desconhecido ou caracteres inválidos. Note que o nome e os prefixos comuns "Global\" e "Local\" são sensíveis a maiúsculas minúsculas. Para alguns nomes inválidos, o método pode ser retornado false em vez disso.
-ou-
Houve outro erro. A HResult propriedade pode fornecer mais informações.
O name é demasiado longo. As restrições de comprimento podem depender do sistema operativo ou da configuração.
O evento nomeado existe, mas o utilizador não tem o acesso de segurança desejado.
Observações
Podem name ser precedidos por Global\ ou Local\ para especificar um namespace. Quando o Global namespace é especificado, o objeto de sincronização pode ser partilhado com quaisquer processos no sistema. Quando o Local namespace é especificado, que também é o padrão quando não há namespace especificado, o objeto de sincronização pode ser partilhado com processos na mesma sessão. No Windows, uma sessão é uma sessão de login, e os serviços normalmente correm numa sessão diferente e não interativa. Em sistemas operativos do tipo Unix, cada shell tem a sua própria sessão. Objetos de sincronização local de sessão podem ser apropriados para sincronizar processos com uma relação pai/filho, onde todos correm na mesma sessão. Para mais informações sobre nomes de objetos de sincronização no Windows, veja Object Names.
Se existir um objeto de sincronização do tipo solicitado no namespace, o objeto de sincronização existente é aberto. Se um objeto de sincronização não existir no namespace, ou se existir um objeto de sincronização de outro tipo no namespace, false é devolvido.
Para criar o evento do sistema quando este ainda não existe, use um dos EventWaitHandle construtores que tenha um name parâmetro.
Se não tiver a certeza se existe um evento de sincronização nomeado, use esta sobrecarga de métodos em vez da OpenExisting(String, EventWaitHandleRights) sobrecarga de métodos, que gera uma exceção caso o evento de sincronização não exista.
O rights parâmetro deve incluir a EventWaitHandleRights.Synchronize flag para permitir que as threads esperem pelo evento, e a EventWaitHandleRights.Modify flag para permitir que as threads chamem os Set métodos e.Reset
Múltiplas chamadas a este método que usam o mesmo valor para name não retornam necessariamente o mesmo EventWaitHandle objeto, embora os objetos que são devolvidos representem o mesmo evento do sistema nomeado.
Aplica-se a
TryOpenExisting(String, NamedWaitHandleOptions, EventWaitHandle)
- Origem:
- EventWaitHandle.cs
- Origem:
- EventWaitHandle.cs
Abre o evento de sincronização nomeado especificado, se já existir, e devolve um valor que indica se a operação foi bem-sucedida. Se as opções estiverem definidas apenas para o utilizador atual, os controlos de acesso do objeto são verificados para o utilizador que chama.
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
Parâmetros
- name
- String
O nome do objeto de sincronização a ser aberto e partilhado com outros processos. O nome é sensível a maiúsculas e minúsculas.
- options
- NamedWaitHandleOptions
As opções de mira para o cabo nomeado. Por defeito, o acesso é limitado apenas ao utilizador atual e à sessão atual. As opções especificadas podem afetar o namespace do nome e o acesso ao objeto handle subjacente.
- result
- EventWaitHandle
Quando este método regressa, contém um EventWaitHandle objeto que representa o evento de sincronização nomeado caso a chamada tenha tido sucesso, ou null se a chamada tenha falhado. Este parâmetro é tratado como não inicializado.
Devoluções
true se o evento de sincronização nomeado fosse aberto com sucesso; caso contrário, false. Em alguns casos, false pode ser devolvido por nomes inválidos.
- Atributos
Exceções
name é uma corda vazia.
name é null.
name é inválido. Isto pode dever-se a várias razões, incluindo algumas restrições que podem ser impostas pelo sistema operativo, como um prefixo desconhecido ou caracteres inválidos. Note que o nome e os prefixos comuns "Global\" e "Local\" são sensíveis a maiúsculas minúsculas. Para alguns nomes inválidos, o método pode ser retornado false em vez disso.
-ou-
Houve outro erro. A HResult propriedade pode fornecer mais informações.
O name é demasiado longo. As restrições de comprimento podem depender do sistema operativo ou da configuração.
O evento nomeado existe, mas o utilizador não tem o acesso de segurança desejado.
Observações
Se existir um objeto de sincronização do tipo solicitado no namespace, o objeto de sincronização existente é aberto. No entanto, se options especificar o acesso limitado ao utilizador atual e o objeto de sincronização não for compatível com ele, false é devolvido. Se um objeto de sincronização não existir no namespace, ou se um objeto de sincronização de outro tipo existir no namespace, false também é devolvido.
Para criar o evento do sistema quando este ainda não existe, use um dos EventWaitHandle construtores que tenha um name parâmetro.
Se não tiver a certeza se existe um evento de sincronização nomeado, use esta sobrecarga de métodos em vez da OpenExisting(String) sobrecarga de métodos, que gera uma exceção caso o evento de sincronização não exista.
Múltiplas chamadas a este método que usam o mesmo valor para name não retornam necessariamente o mesmo EventWaitHandle objeto, embora os objetos que são devolvidos representem o mesmo evento do sistema nomeado.