Mutex.TryOpenExisting Methode

Definitie

Hiermee opent u een opgegeven benoemde mutex, als deze al bestaat en retourneert u een waarde die aangeeft of de bewerking is geslaagd.

Overloads

Name Description
TryOpenExisting(String, Mutex)

Hiermee opent u de opgegeven benoemde mutex, als deze al bestaat en retourneert u een waarde die aangeeft of de bewerking is geslaagd.

TryOpenExisting(String, MutexRights, Mutex)

Hiermee opent u de opgegeven benoemde mutex, als deze al bestaat, met de gewenste beveiligingstoegang en retourneert u een waarde die aangeeft of de bewerking is geslaagd.

TryOpenExisting(String, NamedWaitHandleOptions, Mutex)

Hiermee opent u de opgegeven benoemde mutex, als deze al bestaat en retourneert u een waarde die aangeeft of de bewerking is geslaagd. Als de opties alleen zijn ingesteld op de huidige gebruiker, worden de toegangsbeheer van het object geverifieerd voor de aanroepende gebruiker.

TryOpenExisting(String, Mutex)

Bron:
Mutex.cs
Bron:
Mutex.cs
Bron:
Mutex.cs
Bron:
Mutex.cs
Bron:
Mutex.cs

Hiermee opent u de opgegeven benoemde mutex, als deze al bestaat en retourneert u een waarde die aangeeft of de bewerking is geslaagd.

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

Parameters

name
String

De naam van het synchronisatieobject dat moet worden gedeeld met andere processen. De naam is hoofdlettergevoelig. Het backslashteken (\) is gereserveerd en kan alleen worden gebruikt om een naamruimte op te geven. Zie de sectie Opmerkingen voor meer informatie over naamruimten. Er kunnen verdere beperkingen gelden voor de naam, afhankelijk van het besturingssysteem. Op Unix-besturingssystemen moet de naam na het uitsluiten van de naamruimte bijvoorbeeld een geldige bestandsnaam zijn.

result
Mutex

Wanneer deze methode wordt geretourneerd, bevat u een Mutex object dat de benoemde mutex vertegenwoordigt als de aanroep is geslaagd of null als de aanroep is mislukt. Deze parameter wordt behandeld als niet-geïnitialiseerd.

Retouren

true als de benoemde mutex is geopend; anders, false. In sommige gevallen false kan worden geretourneerd voor ongeldige namen.

Kenmerken

Uitzonderingen

name is een lege tekenreeks.

– of –

alleen .NET Framework: name is langer dan MAX_PATH (260 tekens).

name is null.

name is ongeldig. Dit kan om verschillende redenen zijn, waaronder enkele beperkingen die mogelijk door het besturingssysteem worden geplaatst, zoals een onbekend voorvoegsel of ongeldige tekens. Houd er rekening mee dat de naam en algemene voorvoegsels 'Global\' en 'Local\' hoofdlettergevoelig zijn. Voor sommige ongeldige namen kan de methode in plaats daarvan worden geretourneerd false .

– of –

Er is een andere fout opgetreden. De HResult eigenschap biedt mogelijk meer informatie.

Het name is te lang. Lengtebeperkingen kunnen afhankelijk zijn van het besturingssysteem of de configuratie.

De benoemde mutex bestaat, maar de gebruiker beschikt niet over de vereiste beveiligingstoegang om deze te gebruiken.

Opmerkingen

De name naamruimte kan worden voorafgegaan door Global\ of Local\ om een naamruimte op te geven. Wanneer de Global naamruimte is opgegeven, kan het synchronisatieobject worden gedeeld met processen op het systeem. Wanneer de Local naamruimte is opgegeven, wat ook de standaardwaarde is wanneer er geen naamruimte is opgegeven, kan het synchronisatieobject worden gedeeld met processen in dezelfde sessie. Op Windows is een sessie een aanmeldingssessie en worden services meestal uitgevoerd in een andere niet-interactieve sessie. Op Unix-achtige besturingssystemen heeft elke shell een eigen sessie. Sessie-lokale synchronisatieobjecten zijn mogelijk geschikt voor synchronisatie tussen processen met een bovenliggende/onderliggende relatie, waar ze allemaal in dezelfde sessie worden uitgevoerd. Zie Objectnamen voor meer informatie over de namen van synchronisatieobjecten in Windows.

Als er een synchronisatieobject van het aangevraagde type bestaat in de naamruimte, wordt het bestaande synchronisatieobject geopend. Als er geen synchronisatieobject bestaat in de naamruimte of als er een synchronisatieobject van een ander type bestaat in de naamruimte, false wordt deze geretourneerd.

Als u het systeem mutex wilt maken wanneer deze nog niet bestaat, gebruikt u een van de Mutex constructors met een name parameter.

Als u niet zeker weet of er een benoemde mutex bestaat, gebruikt u deze methodeoverbelasting in plaats van de overbelasting van de OpenExisting(String) methode, waardoor er een uitzondering ontstaat als de mutex niet bestaat.

Meerdere aanroepen naar deze methode die dezelfde waarde gebruiken, name retourneren niet noodzakelijkerwijs hetzelfde Mutex object, ook al vertegenwoordigen de objecten die worden geretourneerd dezelfde benoemde systeemmutex.

Deze overbelasting van de methode is gelijk aan het aanroepen van de overbelasting van de TryOpenExisting(String, MutexRights, Mutex) methode en het opgeven en opgeven MutexRights.Synchronize van MutexRights.Modify rechten, gecombineerd met behulp van de bitsgewijze OR-bewerking. Als u de MutexRights.Synchronize vlag opgeeft, kan een thread wachten op de mutex en kan een thread de methode aanroepen door de MutexRights.ModifyReleaseMutex vlag op te geven.

Met deze methode wordt geen eigendom van de mutex aangevraagd.

Van toepassing op

TryOpenExisting(String, MutexRights, Mutex)

Hiermee opent u de opgegeven benoemde mutex, als deze al bestaat, met de gewenste beveiligingstoegang en retourneert u een waarde die aangeeft of de bewerking is geslaagd.

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

Parameters

name
String

De naam van het synchronisatieobject dat moet worden gedeeld met andere processen. De naam is hoofdlettergevoelig. Het backslashteken (\) is gereserveerd en kan alleen worden gebruikt om een naamruimte op te geven. Zie de sectie Opmerkingen voor meer informatie over naamruimten. Er kunnen verdere beperkingen gelden voor de naam, afhankelijk van het besturingssysteem. Op Unix-besturingssystemen moet de naam na het uitsluiten van de naamruimte bijvoorbeeld een geldige bestandsnaam zijn.

rights
MutexRights

Een bitsgewijze combinatie van de opsommingswaarden die de gewenste beveiligingstoegang vertegenwoordigen.

result
Mutex

Wanneer deze methode wordt geretourneerd, bevat u een Mutex object dat de benoemde mutex vertegenwoordigt als de aanroep is geslaagd of null als de aanroep is mislukt. Deze parameter wordt behandeld als niet-geïnitialiseerd.

Retouren

true als de benoemde mutex is geopend; anders, false. In sommige gevallen false kan worden geretourneerd voor ongeldige namen.

Kenmerken

Uitzonderingen

name is een lege tekenreeks.

– of –

alleen .NET Framework: name is langer dan MAX_PATH (260 tekens).

name is null.

name is ongeldig. Dit kan om verschillende redenen zijn, waaronder enkele beperkingen die mogelijk door het besturingssysteem worden geplaatst, zoals een onbekend voorvoegsel of ongeldige tekens. Houd er rekening mee dat de naam en algemene voorvoegsels 'Global\' en 'Local\' hoofdlettergevoelig zijn. Voor sommige ongeldige namen kan de methode in plaats daarvan worden geretourneerd false .

– of –

Er is een andere fout opgetreden. De HResult eigenschap biedt mogelijk meer informatie.

Het name is te lang. Lengtebeperkingen kunnen afhankelijk zijn van het besturingssysteem of de configuratie.

De benoemde mutex bestaat, maar de gebruiker beschikt niet over de vereiste beveiligingstoegang om deze te gebruiken.

Opmerkingen

De name naamruimte kan worden voorafgegaan door Global\ of Local\ om een naamruimte op te geven. Wanneer de Global naamruimte is opgegeven, kan het synchronisatieobject worden gedeeld met processen op het systeem. Wanneer de Local naamruimte is opgegeven, wat ook de standaardwaarde is wanneer er geen naamruimte is opgegeven, kan het synchronisatieobject worden gedeeld met processen in dezelfde sessie. Op Windows is een sessie een aanmeldingssessie en worden services meestal uitgevoerd in een andere niet-interactieve sessie. Op Unix-achtige besturingssystemen heeft elke shell een eigen sessie. Sessie-lokale synchronisatieobjecten zijn mogelijk geschikt voor synchronisatie tussen processen met een bovenliggende/onderliggende relatie, waar ze allemaal in dezelfde sessie worden uitgevoerd. Zie Objectnamen voor meer informatie over de namen van synchronisatieobjecten in Windows.

Als er een synchronisatieobject van het aangevraagde type bestaat in de naamruimte, wordt het bestaande synchronisatieobject geopend. Als er geen synchronisatieobject bestaat in de naamruimte of als er een synchronisatieobject van een ander type bestaat in de naamruimte, false wordt deze geretourneerd.

Als u het systeem mutex wilt maken wanneer deze nog niet bestaat, gebruikt u een van de Mutex constructors met een name parameter.

Als u niet zeker weet of er een benoemde mutex bestaat, gebruikt u deze methodeoverbelasting in plaats van de overbelasting van de OpenExisting(String, MutexRights) methode, waardoor er een uitzondering ontstaat als de mutex niet bestaat.

De rights parameter moet de MutexRights.Synchronize vlag bevatten om threads toe te staan op de mutex te wachten en de MutexRights.Modify vlag om threads toe te staan de ReleaseMutex methode aan te roepen.

Meerdere aanroepen naar deze methode die dezelfde waarde gebruiken, name retourneren niet noodzakelijkerwijs hetzelfde Mutex object, ook al vertegenwoordigen de objecten die worden geretourneerd dezelfde benoemde systeemmutex.

Met deze methode wordt geen eigendom van de mutex aangevraagd.

Van toepassing op

TryOpenExisting(String, NamedWaitHandleOptions, Mutex)

Bron:
Mutex.cs
Bron:
Mutex.cs

Hiermee opent u de opgegeven benoemde mutex, als deze al bestaat en retourneert u een waarde die aangeeft of de bewerking is geslaagd. Als de opties alleen zijn ingesteld op de huidige gebruiker, worden de toegangsbeheer van het object geverifieerd voor de aanroepende gebruiker.

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

Parameters

name
String

De naam van het synchronisatieobject dat moet worden gedeeld met andere processen. De naam is hoofdlettergevoelig.

options
NamedWaitHandleOptions

De bereikopties voor de benoemde systeemmutex. De standaardinstelling is alleen toegankelijk voor de huidige gebruiker en de huidige sessie. De opgegeven opties kunnen van invloed zijn op de naamruimte voor de naam en toegang tot het onderliggende mutex-object van het systeem.

result
Mutex

Wanneer deze methode wordt geretourneerd, bevat u een Mutex object dat de benoemde mutex vertegenwoordigt als de aanroep is geslaagd of null als de aanroep is mislukt. Deze parameter wordt behandeld als niet-geïnitialiseerd.

Retouren

true als de benoemde mutex is geopend; anders, false. In sommige gevallen false kan worden geretourneerd voor ongeldige namen.

Uitzonderingen

name is een lege tekenreeks.

name is null.

name is ongeldig. Dit kan om verschillende redenen zijn, waaronder enkele beperkingen die mogelijk door het besturingssysteem worden geplaatst, zoals een onbekend voorvoegsel of ongeldige tekens. Houd er rekening mee dat de naam en algemene voorvoegsels 'Global\' en 'Local\' hoofdlettergevoelig zijn. Voor sommige ongeldige namen kan de methode in plaats daarvan worden geretourneerd false .

– of –

Er is een andere fout opgetreden. De HResult eigenschap biedt mogelijk meer informatie.

Het name is te lang. Lengtebeperkingen kunnen afhankelijk zijn van het besturingssysteem of de configuratie.

De benoemde mutex bestaat, maar de gebruiker beschikt niet over de vereiste beveiligingstoegang om deze te gebruiken.

Opmerkingen

Als er een synchronisatieobject van het aangevraagde type bestaat in de naamruimte, wordt het bestaande synchronisatieobject geopend. Als options echter de toegang is beperkt tot de huidige gebruiker en het synchronisatieobject niet compatibel is, false wordt geretourneerd. Als er geen synchronisatieobject in de naamruimte bestaat of als er een synchronisatieobject van een ander type bestaat in de naamruimte, false wordt ook geretourneerd.

Als u het systeem mutex wilt maken wanneer deze nog niet bestaat, gebruikt u een van de Mutex constructors met een name parameter.

Als u niet zeker weet of er een benoemde mutex bestaat, gebruikt u deze methodeoverbelasting in plaats van de overbelasting van de OpenExisting(String) methode, waardoor er een uitzondering ontstaat als de mutex niet bestaat.

Meerdere aanroepen naar deze methode die dezelfde waarde gebruiken, name retourneren niet noodzakelijkerwijs hetzelfde Mutex object, ook al vertegenwoordigen de objecten die worden geretourneerd dezelfde benoemde systeemmutex.

Met deze methode wordt geen eigendom van de mutex aangevraagd.

Van toepassing op