Semaphore.TryOpenExisting Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee opent u een opgegeven benoemde semafore, als deze al bestaat en retourneert een waarde die aangeeft of de bewerking is geslaagd.
Overloads
| Name | Description |
|---|---|
| TryOpenExisting(String, Semaphore) |
Hiermee opent u de opgegeven benoemde semafore, als deze al bestaat en retourneert u een waarde die aangeeft of de bewerking is geslaagd. |
| TryOpenExisting(String, SemaphoreRights, Semaphore) |
Hiermee opent u de opgegeven benoemde semaphore, als deze al bestaat, met de gewenste beveiligingstoegang en retourneert u een waarde die aangeeft of de bewerking is geslaagd. |
| TryOpenExisting(String, NamedWaitHandleOptions, Semaphore) |
Hiermee opent u de opgegeven benoemde semafore, 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, Semaphore)
- Bron:
- Semaphore.cs
- Bron:
- Semaphore.cs
- Bron:
- Semaphore.cs
- Bron:
- Semaphore.cs
- Bron:
- Semaphore.cs
Hiermee opent u de opgegeven benoemde semafore, 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::Semaphore ^ % result);
public static bool TryOpenExisting(string name, out System.Threading.Semaphore result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, out System.Threading.Semaphore? result);
public static bool TryOpenExisting(string name, out System.Threading.Semaphore? result);
static member TryOpenExisting : string * Semaphore -> bool
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As Semaphore) 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
- Semaphore
Wanneer deze methode wordt geretourneerd, bevat het een Semaphore object dat de benoemde semaphore 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 semafore 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 semaphore bestaat, maar de gebruiker heeft niet de beveiligingstoegang die nodig is 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 de systeemmafore wilt maken wanneer deze nog niet bestaat, gebruikt u een van de Semaphore constructors met een name parameter.
Als u niet zeker weet of er een benoemde semafore bestaat, gebruikt u deze methode-overbelasting in plaats van de overbelasting van de OpenExisting(String) methode, waardoor een uitzondering ontstaat als de semafore niet bestaat.
Deze overbelasting van de methode is gelijk aan het aanroepen van de overbelasting van de TryOpenExisting methode en het opgeven en opgeven SemaphoreRights.Synchronize van SemaphoreRights.Modify rechten, gecombineerd met behulp van de bitsgewijze OR-bewerking. Als u de SemaphoreRights.Synchronize vlag opgeeft, kan een thread de semaphore invoeren en de SemaphoreRights.Modify vlag opgeven, kan een thread de Release methode aanroepen.
Van toepassing op
TryOpenExisting(String, SemaphoreRights, Semaphore)
Hiermee opent u de opgegeven benoemde semaphore, 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::SemaphoreRights rights, [Runtime::InteropServices::Out] System::Threading::Semaphore ^ % result);
public static bool TryOpenExisting(string name, System.Security.AccessControl.SemaphoreRights rights, out System.Threading.Semaphore result);
static member TryOpenExisting : string * System.Security.AccessControl.SemaphoreRights * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, rights As SemaphoreRights, ByRef result As Semaphore) 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
- SemaphoreRights
Een bitsgewijze combinatie van de opsommingswaarden die de gewenste beveiligingstoegang vertegenwoordigen.
- result
- Semaphore
Wanneer deze methode wordt geretourneerd, bevat het een Semaphore object dat de benoemde semaphore 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 semafore is geopend; anders, false. In sommige gevallen false kan worden geretourneerd voor ongeldige namen.
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 semaphore bestaat, maar de gebruiker heeft niet de beveiligingstoegang die nodig is 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 de systeemmafore wilt maken wanneer deze nog niet bestaat, gebruikt u een van de Semaphore constructors met een name parameter.
Als u niet zeker weet of er een benoemde semafore bestaat, gebruikt u deze methode-overbelasting in plaats van de overbelasting van de OpenExisting(String, SemaphoreRights) methode, waardoor een uitzondering ontstaat als de semafore niet bestaat.
De rights parameter moet de SemaphoreRights.Synchronize vlag bevatten om threads toe te staan deemafore in te voeren en de SemaphoreRights.Modify vlag om threads toe te staan de Release methode aan te roepen.
Meerdere aanroepen naar deze methode die dezelfde waarde gebruiken, name retourneren niet noodzakelijkerwijs hetzelfde Semaphore object, ook al vertegenwoordigen de objecten die worden geretourneerd dezelfde benoemde systeemsemafore.
Van toepassing op
TryOpenExisting(String, NamedWaitHandleOptions, Semaphore)
- Bron:
- Semaphore.cs
- Bron:
- Semaphore.cs
Hiermee opent u de opgegeven benoemde semafore, 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::Semaphore ^ % result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, System.Threading.NamedWaitHandleOptions options, out System.Threading.Semaphore? result);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * System.Threading.NamedWaitHandleOptions * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, options As NamedWaitHandleOptions, ByRef result As Semaphore) 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.
- options
- NamedWaitHandleOptions
De bereikopties voor de benoemde semaphore. 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 semaphore-object.
- result
- Semaphore
Wanneer deze methode wordt geretourneerd, bevat het een Semaphore object dat de benoemde semaphore 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 semafore is geopend; anders, false. In sommige gevallen false kan worden geretourneerd voor ongeldige namen.
- Kenmerken
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 semaphore bestaat, maar de gebruiker heeft niet de beveiligingstoegang die nodig is 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 de systeemmafore wilt maken wanneer deze nog niet bestaat, gebruikt u een van de Semaphore constructors met een name parameter.
Als u niet zeker weet of er een benoemde semafore bestaat, gebruikt u deze methode-overbelasting in plaats van de overbelasting van de OpenExisting(String) methode, waardoor een uitzondering ontstaat als de semafore niet bestaat.