EventWaitHandle.TryOpenExisting Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.