Mutex.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 mutex denominato specificato, se esiste già, e restituisce un valore che indica se l'operazione è riuscita.
Overload
| Nome | Descrizione |
|---|---|
| TryOpenExisting(String, Mutex) |
Apre il mutex denominato specificato, se esiste già, e restituisce un valore che indica se l'operazione è riuscita. |
| TryOpenExisting(String, MutexRights, Mutex) |
Apre il mutex denominato specificato, se già esistente, con l'accesso di sicurezza desiderato e restituisce un valore che indica se l'operazione è riuscita. |
| TryOpenExisting(String, NamedWaitHandleOptions, Mutex) |
Apre il mutex denominato specificato, se esiste già, e restituisce un valore che indica se l'operazione è riuscita. Se le opzioni sono impostate solo sull'utente corrente, i controlli di accesso dell'oggetto vengono verificati per l'utente chiamante. |
TryOpenExisting(String, Mutex)
- Origine:
- Mutex.cs
- Origine:
- Mutex.cs
- Origine:
- Mutex.cs
- Origine:
- Mutex.cs
- Origine:
- Mutex.cs
Apre il mutex denominato specificato, se esiste già, e restituisce un valore che indica se l'operazione è riuscita.
public:
static bool TryOpenExisting(System::String ^ name, [Runtime::InteropServices::Out] System::Threading::Mutex ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, out System.Threading.Mutex result);
public static bool TryOpenExisting(string name, out System.Threading.Mutex? result);
public static bool TryOpenExisting(string name, out System.Threading.Mutex result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * Mutex -> bool
static member TryOpenExisting : string * Mutex -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As Mutex) As Boolean
Parametri
- name
- String
Nome dell'oggetto di sincronizzazione da condividere con altri processi. Il nome è sensibile alle maiuscole. Il carattere 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
- Mutex
Quando termina, questo metodo contiene un Mutex oggetto che rappresenta il mutex denominato se la chiamata ha avuto esito positivo o null se la chiamata non è riuscita. Questo parametro viene considerato non inizializzato.
Valori restituiti
true se il mutex denominato è stato aperto correttamente; in caso contrario, false. In alcuni casi, false potrebbe essere restituito per nomi non validi.
- Attributi
Eccezioni
name è una stringa vuota.
oppure
solo .NET Framework: name è più lungo di MAX_PATH (260 caratteri).
name è null.
name non è valido. Questo può essere per vari motivi, incluse alcune restrizioni che potrebbero essere inserite dal sistema operativo, ad esempio un prefisso sconosciuto o caratteri non validi. Si noti che il nome e i prefissi comuni "Global\" e "Local\" fanno distinzione tra maiuscole e minuscole. Per alcuni nomi non validi, il metodo può invece restituire false .
oppure
Si è verificato un altro errore. La HResult proprietà potrebbe fornire altre informazioni.
name supera la lunghezza consentita. Le restrizioni relative alla lunghezza possono dipendere dal sistema operativo o dalla configurazione.
Il mutex denominato esiste, ma l'utente non ha l'accesso di sicurezza necessario per usarlo.
Commenti
Può name essere preceduto Global\ da o Local\ per specificare uno spazio dei nomi. Quando si specifica lo Global spazio dei nomi, l'oggetto di sincronizzazione può essere condiviso con qualsiasi processo nel sistema. Quando si specifica lo Local spazio dei nomi , che è anche l'impostazione predefinita quando non viene specificato alcuno 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 simili a Unix, ogni shell ha una 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 Nomina oggetto.
Se esiste un oggetto di sincronizzazione del tipo richiesto nello spazio dei nomi , viene aperto l'oggetto di sincronizzazione esistente. Se non esiste un oggetto di sincronizzazione nello spazio dei nomi o un oggetto di sincronizzazione di un tipo diverso nello spazio dei nomi, false viene restituito .
Per creare il mutex di sistema quando non esiste già, usare uno dei Mutex costruttori con un name parametro .
Se non si è certi che esista un mutex denominato, usare questo overload del metodo anziché l'overload del OpenExisting(String) metodo, che genera un'eccezione se il mutex non esiste.
Più chiamate a questo metodo che utilizzano lo stesso valore per name non restituiscono necessariamente lo stesso Mutex oggetto, anche se gli oggetti restituiti rappresentano lo stesso mutex di sistema denominato.
Questo overload del metodo equivale a chiamare l'overload del TryOpenExisting(String, MutexRights, Mutex) metodo e specificare MutexRights.Synchronize i diritti e MutexRights.Modify , combinati usando l'operazione OR bit per bit. La specifica del MutexRights.Synchronize flag consente a un thread di attendere il mutex e di specificare il MutexRights.Modify flag consente a un thread di chiamare il ReleaseMutex metodo .
Questo metodo non richiede la proprietà del mutex.
Si applica a
TryOpenExisting(String, MutexRights, Mutex)
Apre il mutex denominato specificato, se già 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::MutexRights rights, [Runtime::InteropServices::Out] System::Threading::Mutex ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting(string name, System.Security.AccessControl.MutexRights rights, out System.Threading.Mutex result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * System.Security.AccessControl.MutexRights * Mutex -> bool
Public Shared Function TryOpenExisting (name As String, rights As MutexRights, ByRef result As Mutex) As Boolean
Parametri
- name
- String
Nome dell'oggetto di sincronizzazione da condividere con altri processi. Il nome è sensibile alle maiuscole. Il carattere 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
- MutexRights
Combinazione bit per bit dei valori di enumerazione che rappresentano l'accesso alla sicurezza desiderato.
- result
- Mutex
Quando termina, questo metodo contiene un Mutex oggetto che rappresenta il mutex denominato se la chiamata ha avuto esito positivo o null se la chiamata non è riuscita. Questo parametro viene considerato non inizializzato.
Valori restituiti
true se il mutex denominato è stato aperto correttamente; in caso contrario, false. In alcuni casi, false potrebbe essere restituito per nomi non validi.
- Attributi
Eccezioni
name è una stringa vuota.
oppure
solo .NET Framework: name è più lungo di MAX_PATH (260 caratteri).
name è null.
name non è valido. Questo può essere per vari motivi, incluse alcune restrizioni che potrebbero essere inserite dal sistema operativo, ad esempio un prefisso sconosciuto o caratteri non validi. Si noti che il nome e i prefissi comuni "Global\" e "Local\" fanno distinzione tra maiuscole e minuscole. Per alcuni nomi non validi, il metodo può invece restituire false .
oppure
Si è verificato un altro errore. La HResult proprietà potrebbe fornire altre informazioni.
name supera la lunghezza consentita. Le restrizioni relative alla lunghezza possono dipendere dal sistema operativo o dalla configurazione.
Il mutex denominato esiste, ma l'utente non ha l'accesso di sicurezza necessario per usarlo.
Commenti
Può name essere preceduto Global\ da o Local\ per specificare uno spazio dei nomi. Quando si specifica lo Global spazio dei nomi, l'oggetto di sincronizzazione può essere condiviso con qualsiasi processo nel sistema. Quando si specifica lo Local spazio dei nomi , che è anche l'impostazione predefinita quando non viene specificato alcuno 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 simili a Unix, ogni shell ha una 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 Nomina oggetto.
Se esiste un oggetto di sincronizzazione del tipo richiesto nello spazio dei nomi , viene aperto l'oggetto di sincronizzazione esistente. Se non esiste un oggetto di sincronizzazione nello spazio dei nomi o un oggetto di sincronizzazione di un tipo diverso nello spazio dei nomi, false viene restituito .
Per creare il mutex di sistema quando non esiste già, usare uno dei Mutex costruttori con un name parametro .
Se non si è certi che esista un mutex denominato, usare questo overload del metodo anziché l'overload del OpenExisting(String, MutexRights) metodo, che genera un'eccezione se il mutex non esiste.
Il rights parametro deve includere il MutexRights.Synchronize flag per consentire ai thread di attendere il mutex e il MutexRights.Modify flag per consentire ai thread di chiamare il ReleaseMutex metodo .
Più chiamate a questo metodo che utilizzano lo stesso valore per name non restituiscono necessariamente lo stesso Mutex oggetto, anche se gli oggetti restituiti rappresentano lo stesso mutex di sistema denominato.
Questo metodo non richiede la proprietà del mutex.
Si applica a
TryOpenExisting(String, NamedWaitHandleOptions, Mutex)
- Origine:
- Mutex.cs
- Origine:
- Mutex.cs
Apre il mutex denominato specificato, se esiste già, e restituisce un valore che indica se l'operazione è riuscita. Se le opzioni sono impostate solo sull'utente corrente, i controlli di accesso dell'oggetto vengono verificati per l'utente chiamante.
public:
static bool TryOpenExisting(System::String ^ name, System::Threading::NamedWaitHandleOptions options, [Runtime::InteropServices::Out] System::Threading::Mutex ^ % result);
public static bool TryOpenExisting(string name, System.Threading.NamedWaitHandleOptions options, out System.Threading.Mutex? result);
static member TryOpenExisting : string * System.Threading.NamedWaitHandleOptions * Mutex -> bool
Public Shared Function TryOpenExisting (name As String, options As NamedWaitHandleOptions, ByRef result As Mutex) As Boolean
Parametri
- name
- String
Nome dell'oggetto di sincronizzazione da condividere con altri processi. Il nome è sensibile alle maiuscole.
- options
- NamedWaitHandleOptions
Opzioni di ambito per il mutex di sistema denominato. Per impostazione predefinita, l'accesso è limitato solo all'utente corrente e alla sessione corrente. Le opzioni specificate potrebbero influire sullo spazio dei nomi per il nome e l'accesso all'oggetto mutex di sistema sottostante.
- result
- Mutex
Quando termina, questo metodo contiene un Mutex oggetto che rappresenta il mutex denominato se la chiamata ha avuto esito positivo o null se la chiamata non è riuscita. Questo parametro viene considerato non inizializzato.
Valori restituiti
true se il mutex denominato è stato aperto correttamente; in caso contrario, false. In alcuni casi, false potrebbe essere restituito per nomi non validi.
Eccezioni
name è una stringa vuota.
name è null.
name non è valido. Questo può essere per vari motivi, incluse alcune restrizioni che potrebbero essere inserite dal sistema operativo, ad esempio un prefisso sconosciuto o caratteri non validi. Si noti che il nome e i prefissi comuni "Global\" e "Local\" fanno distinzione tra maiuscole e minuscole. Per alcuni nomi non validi, il metodo può invece restituire false .
oppure
Si è verificato un altro errore. La HResult proprietà potrebbe fornire altre informazioni.
name supera la lunghezza consentita. Le restrizioni relative alla lunghezza possono dipendere dal sistema operativo o dalla configurazione.
Il mutex denominato esiste, ma l'utente non ha l'accesso di sicurezza necessario per usarlo.
Commenti
Se esiste un oggetto di sincronizzazione del tipo richiesto nello spazio dei nomi , viene aperto l'oggetto di sincronizzazione esistente. Tuttavia, se options specifica l'accesso limitato all'utente corrente e l'oggetto di sincronizzazione non è compatibile con esso, false viene restituito . Se non esiste un oggetto di sincronizzazione nello spazio dei nomi o un oggetto di sincronizzazione di un tipo diverso nello spazio dei nomi, false viene restituito anche .
Per creare il mutex di sistema quando non esiste già, usare uno dei Mutex costruttori con un name parametro .
Se non si è certi che esista un mutex denominato, usare questo overload del metodo anziché l'overload del OpenExisting(String) metodo, che genera un'eccezione se il mutex non esiste.
Più chiamate a questo metodo che utilizzano lo stesso valore per name non restituiscono necessariamente lo stesso Mutex oggetto, anche se gli oggetti restituiti rappresentano lo stesso mutex di sistema denominato.
Questo metodo non richiede la proprietà del mutex.