Idioma

EventWaitHandleAcl.Create Método

Definição

Obtém ou cria uma EventWaitHandle instância, permitindo que uma EventWaitHandleSecurity instância seja opcionalmente especificada para a definir durante a criação do evento.

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

Parâmetros

initialState
Boolean

true definir o estado inicial para sinalizado se o evento nomeado for criado como resultado desta chamada; false para o definir como não sinalizado.

mode
EventResetMode

Um dos valores de enum que determina se o evento é reiniciado automaticamente ou manualmente.

name
String

O nome, se o objeto de sincronização for partilhado com outros processos; caso contrário, null ou uma cadeia vazia. O nome é sensível a maiúsculas e minúsculas. O carácter de 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. Podem existir restrições adicionais quanto 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.

createdNew
Boolean

Quando este método retorna, este argumento é sempre definido para true se for criado um evento local; isto é, quando name é null ou Empty. Se name tiver um valor válido, não vazio, este argumento é definido para true quando o evento do sistema é criado, ou para false se um evento existente do sistema for encontrado com esse nome.

eventSecurity
EventWaitHandleSecurity

A opção de controlo de acesso ao Windows deve aplicar.

Devoluções

Um objeto que representa um event wait handle conforme solicitado.

Exceções

O mode valor de enum estava fora do alcance legal.

-ou-

.NET Framework apenas: name é mais longo que MAX_PATH (260 caracteres).

O mode valor de enum estava fora do alcance legal. Em alguns casos ArgumentException , é lançado em vez disso.

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.

-ou-

Houve outro erro. A HResult propriedade pode fornecer mais informações.

Windows apenas: name especificava um namespace desconhecido. Consulte Nomes dos Objetos para mais informações.

O name é demasiado longo. As restrições de comprimento podem depender do sistema operativo ou da configuração.

Um objeto de sincronização com o fornecido name não pode ser criado. Um objeto de sincronização de outro tipo pode ter o mesmo nome.

O evento nomeado existe, mas o utilizador não tem o acesso de segurança desejado.

.NET Framework apenas: O comprimento name ultrapassa MAX_PATH (260 caracteres).

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. Os objetos de sincronização local da sessão podem ser apropriados para sincronizar entre 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 a name for fornecido e um objeto de sincronização do tipo solicitado já existir no namespace, o objeto de sincronização existente é aberto. Se já existir um objeto de sincronização de outro tipo no namespace, um WaitHandleCannotBeOpenedException lançamento é lançado. Caso contrário, é criado um novo objeto de sincronização.

Atenção

Por defeito, um evento nomeado não está restrito ao utilizador que o criou. Outros utilizadores podem conseguir abrir e usar o evento, incluindo interferir com o evento ao defini-lo ou reiniciá-lo de forma inadequada. Para restringir o acesso a utilizadores específicos, pode passar um EventWaitHandleSecurity num ao criar o evento nomeado. Evite usar eventos nomeados sem restrições de acesso em sistemas que possam ter utilizadores não confiáveis a executar código.

Aplica-se a