EventWaitHandle.TryOpenExisting Metodo

Definizione

Apre un evento di sincronizzazione denominato specificato, se esistente, e restituisce un valore che indica se l'operazione è stata completata.

Overload

TryOpenExisting(String, EventWaitHandle)

Apre l'evento di sincronizzazione denominato specificato, se esistente, e restituisce un valore che indica se l'operazione è riuscita.

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

Apre l'evento di sincronizzazione denominato specificato, se esistente, con l'accesso di sicurezza desiderato e restituisce un valore che indica se l'operazione è riuscita.

TryOpenExisting(String, EventWaitHandle)

Origine:
EventWaitHandle.cs
Origine:
EventWaitHandle.cs
Origine:
EventWaitHandle.cs

Apre l'evento di sincronizzazione denominato specificato, se esistente, e restituisce un valore che indica se l'operazione è riuscita.

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

Parametri

name
String

Nome dell'oggetto di sincronizzazione da aprire e condividere con altri processi. Per il nome è prevista la distinzione tra maiuscole e minuscole. Il carattere della barra rovesciata (\) è riservato e può essere usato solo per specificare uno spazio dei nomi. Per altre informazioni sugli spazi dei nomi, vedere la sezione osservazioni. Potrebbero esserci ulteriori restrizioni sul nome a seconda del sistema operativo. Ad esempio, nei sistemi operativi basati su Unix, il nome dopo l'esclusione dello spazio dei nomi deve essere un nome di file valido.

result
EventWaitHandle

Quando restituisce il controllo, questo metodo contiene un oggetto EventWaitHandle che rappresenta l'evento di sincronizzazione denominato se la chiamata è riuscita o null se la chiamata non è riuscita. Questo parametro viene trattato come non inizializzato.

Restituisce

true se l'evento di sincronizzazione denominato è stato aperto correttamente; in caso contrario, false. In alcuni casi false può essere restituito per nomi non validi.

Attributi

Eccezioni

Il parametro name è una stringa vuota.

-oppure-

Solo .NET Framework: la lunghezza di name supera MAX_PATH (260 caratteri).

name costruito in modo predefinito è null.

name non è valido. I motivi possono essere diversi, e tra questi limitazioni implementate dal sistema operativo, come prefisso sconosciuto o caratteri non validi. Si noti che il nome e i prefissi comuni "Global\" e "Local\" sono distinzione tra maiuscole e minuscole. Per alcuni nomi non validi, il metodo potrebbe invece restituire false.

-oppure-

Si è verificato un altro errore. È possibile che la proprietà HResult offra ulteriori informazioni.

name supera la lunghezza consentita. Le limitazioni di lunghezza possono dipendere dal sistema operativo o dalla configurazione.

L'evento denominato esiste, ma l'utente non dispone dell'accesso di sicurezza desiderato.

Commenti

Può name essere preceduto da Global\ o Local\ per specificare uno spazio dei nomi. Quando viene specificato lo spazio dei nomi, l'oggetto Global di sincronizzazione può essere condiviso con tutti i processi nel sistema. Quando viene specificato lo Local spazio dei nomi, che è anche il valore predefinito quando non viene specificato alcun spazio dei nomi, l'oggetto di sincronizzazione può essere condiviso con i processi nella stessa sessione. In Windows una sessione è una sessione di accesso e i servizi vengono in genere eseguiti in una sessione non interattiva diversa. Nei sistemi operativi Unix, ogni shell ha la propria sessione. Gli oggetti di sincronizzazione locale della sessione possono essere appropriati per la sincronizzazione tra processi con una relazione padre/figlio in cui vengono eseguiti tutti nella stessa sessione. Per altre informazioni sui nomi degli oggetti di sincronizzazione in Windows, vedere Nomi oggetti.

Se esiste un oggetto di sincronizzazione del tipo richiesto nello spazio dei nomi, l'oggetto di sincronizzazione esistente viene aperto. Se un oggetto di sincronizzazione non esiste nello spazio dei nomi o un oggetto di sincronizzazione di un tipo diverso esiste nello spazio dei nomi, false viene restituito.

Per creare l'evento di sistema quando non esiste già, usare uno dei EventWaitHandle costruttori con un name parametro.

Se si è incerti se esiste un evento di sincronizzazione denominato, usare questo overload del metodo anziché l'overload del OpenExisting(String) metodo, che genera un'eccezione se l'evento di sincronizzazione non esiste.

Questo overload di metodo equivale a chiamare l'overload del TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) metodo e specificare EventWaitHandleRights.Synchronize e EventWaitHandleRights.Modify diritti, combinati usando l'operazione OR bit per bit. La specifica del EventWaitHandleRights.Synchronize flag consente a un thread di attendere l'evento di sistema denominato e specificare il EventWaitHandleRights.Modify flag consente a un thread di chiamare i Set metodi e Reset .

Più chiamate a questo metodo che usano lo stesso valore per name non restituiscono necessariamente lo stesso EventWaitHandle oggetto, anche se gli oggetti restituiti rappresentano lo stesso evento di sistema denominato.

Si applica a

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

Apre l'evento di sincronizzazione denominato specificato, se esistente, con l'accesso di sicurezza desiderato e restituisce un valore che indica se l'operazione è riuscita.

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

Parametri

name
String

Nome dell'oggetto di sincronizzazione da aprire e condividere con altri processi. Per il nome è prevista la distinzione tra maiuscole e minuscole. Il carattere della barra rovesciata (\) è riservato e può essere usato solo per specificare uno spazio dei nomi. Per altre informazioni sugli spazi dei nomi, vedere la sezione osservazioni. Potrebbero esserci ulteriori restrizioni sul nome a seconda del sistema operativo. Ad esempio, nei sistemi operativi basati su Unix, il nome dopo l'esclusione dello spazio dei nomi deve essere un nome di file valido.

rights
EventWaitHandleRights

Combinazione bit per bit dei valori di enumerazione che rappresentano l'accesso di sicurezza desiderato.

result
EventWaitHandle

Quando restituisce il controllo, questo metodo contiene un oggetto EventWaitHandle che rappresenta l'evento di sincronizzazione denominato se la chiamata è riuscita o null se la chiamata non è riuscita. Questo parametro viene trattato come non inizializzato.

Restituisce

true se l'evento di sincronizzazione denominato è stato aperto correttamente; in caso contrario, false. In alcuni casi false può essere restituito per nomi non validi.

Attributi

Eccezioni

Il parametro name è una stringa vuota.

-oppure-

Solo .NET Framework: la lunghezza di name supera MAX_PATH (260 caratteri).

name costruito in modo predefinito è null.

name non è valido. I motivi possono essere diversi, e tra questi limitazioni implementate dal sistema operativo, come prefisso sconosciuto o caratteri non validi. Si noti che il nome e i prefissi comuni "Global\" e "Local\" sono distinzione tra maiuscole e minuscole. Per alcuni nomi non validi, il metodo potrebbe invece restituire false.

-oppure-

Si è verificato un altro errore. È possibile che la proprietà HResult offra ulteriori informazioni.

name supera la lunghezza consentita. Le limitazioni di lunghezza possono dipendere dal sistema operativo o dalla configurazione.

L'evento denominato esiste, ma l'utente non dispone dell'accesso di sicurezza desiderato.

Commenti

Può name essere preceduto da Global\ o Local\ per specificare uno spazio dei nomi. Quando viene specificato lo spazio dei nomi, l'oggetto Global di sincronizzazione può essere condiviso con tutti i processi nel sistema. Quando viene specificato lo Local spazio dei nomi, che è anche il valore predefinito quando non viene specificato alcun spazio dei nomi, l'oggetto di sincronizzazione può essere condiviso con i processi nella stessa sessione. In Windows una sessione è una sessione di accesso e i servizi vengono in genere eseguiti in una sessione non interattiva diversa. Nei sistemi operativi Unix, ogni shell ha la propria sessione. Gli oggetti di sincronizzazione locale della sessione possono essere appropriati per la sincronizzazione tra processi con una relazione padre/figlio in cui vengono eseguiti tutti nella stessa sessione. Per altre informazioni sui nomi degli oggetti di sincronizzazione in Windows, vedere Nomi oggetti.

Se esiste un oggetto di sincronizzazione del tipo richiesto nello spazio dei nomi, l'oggetto di sincronizzazione esistente viene aperto. Se un oggetto di sincronizzazione non esiste nello spazio dei nomi o un oggetto di sincronizzazione di un tipo diverso esiste nello spazio dei nomi, false viene restituito.

Per creare l'evento di sistema quando non esiste già, usare uno dei EventWaitHandle costruttori con un name parametro.

Se si è incerti se esiste un evento di sincronizzazione denominato, usare questo overload del metodo anziché l'overload del OpenExisting(String, EventWaitHandleRights) metodo, che genera un'eccezione se l'evento di sincronizzazione non esiste.

Il rights parametro deve includere il EventWaitHandleRights.Synchronize flag per consentire ai thread di attendere l'evento e il EventWaitHandleRights.Modify flag per consentire ai thread di chiamare i Set metodi e Reset .

Più chiamate a questo metodo che usano lo stesso valore per name non restituiscono necessariamente lo stesso EventWaitHandle oggetto, anche se gli oggetti restituiti rappresentano lo stesso evento di sistema denominato.

Si applica a