Semaphore.TryOpenExisting Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Öppnar en angiven med namnet semafor, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades.
Överlagringar
| Name | Description |
|---|---|
| TryOpenExisting(String, Semaphore) |
Öppnar den angivna namngivna semaforen, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades. |
| TryOpenExisting(String, SemaphoreRights, Semaphore) |
Öppnar den angivna namngivna semaforen, om den redan finns, med önskad säkerhetsåtkomst, och returnerar ett värde som anger om åtgärden lyckades. |
| TryOpenExisting(String, NamedWaitHandleOptions, Semaphore) |
Öppnar den angivna namngivna semaforen, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades. Om alternativen endast är inställda på den aktuella användaren verifieras objektets åtkomstkontroller för den anropande användaren. |
TryOpenExisting(String, Semaphore)
- Källa:
- Semaphore.cs
- Källa:
- Semaphore.cs
- Källa:
- Semaphore.cs
- Källa:
- Semaphore.cs
- Källa:
- Semaphore.cs
Öppnar den angivna namngivna semaforen, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades.
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
Parametrar
- name
- String
Namnet på synkroniseringsobjektet som ska delas med andra processer. Namnet är skiftlägeskänsligt. Omvänt snedstreck (\) är reserverat och kan endast användas för att ange ett namnområde. Mer information om namnområden finns i avsnittet kommentarer. Det kan finnas ytterligare begränsningar för namnet beroende på operativsystemet. På Unix-baserade operativsystem måste till exempel namnet efter exkludering av namnområdet vara ett giltigt filnamn.
- result
- Semaphore
När den här metoden returneras innehåller ett Semaphore objekt som representerar den namngivna semaforen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.
Returer
trueom den namngivna semaforen öppnades korrekt; annars . false I vissa fall false kan returneras för ogiltiga namn.
- Attribut
Undantag
name är en tom sträng.
-eller-
endast .NET Framework: name är längre än MAX_PATH (260 tecken).
name är null.
name är ogiltigt. Detta kan bero på olika orsaker, inklusive vissa begränsningar som kan finnas i operativsystemet, till exempel ett okänt prefix eller ogiltiga tecken. Observera att namnet och de vanliga prefixen "Global\" och "Local\" är skiftlägeskänsliga. För vissa ogiltiga namn kan metoden returneras false i stället.
-eller-
Det uppstod ett annat fel. Egenskapen HResult kan ge mer information.
Den name är för lång. Längdbegränsningar kan bero på operativsystemet eller konfigurationen.
Den namngivna semaforen finns, men användaren har inte den säkerhetsåtkomst som krävs för att använda den.
Kommentarer
name Kan vara prefix med Global\ eller Local\ för att ange ett namnområde.
Global När namnområdet har angetts kan synkroniseringsobjektet delas med alla processer i systemet.
Local När namnområdet har angetts, vilket också är standard när inget namnområde anges, kan synkroniseringsobjektet delas med processer i samma session. På Windows är en session en inloggningssession och tjänster körs vanligtvis i en annan icke-interaktiv session. På Unix-liknande operativsystem har varje gränssnitt en egen session. Sessionslokala synkroniseringsobjekt kan vara lämpliga för synkronisering mellan processer med en överordnad/underordnad relation där alla körs i samma session. Mer information om synkroniseringsobjektnamn på Windows finns i Object Names.
Om det finns ett synkroniseringsobjekt av den begärda typen i namnområdet öppnas det befintliga synkroniseringsobjektet. Om det inte finns något synkroniseringsobjekt i namnområdet, eller om det finns ett synkroniseringsobjekt av en annan typ i namnområdet, false returneras.
Om du vill skapa systemsemaforen när den inte redan finns använder du en av konstruktorerna Semaphore som har en name parameter.
Om du är osäker på om det finns en namngiven semafor använder du den här metodens överlagring i stället för metodöverbelastningen OpenExisting(String) , vilket utlöser ett undantag om semaforen inte finns.
Den här metodens överlagring motsvarar att anropa TryOpenExisting metodens överlagring och ange SemaphoreRights.Synchronize och SemaphoreRights.Modify rättigheter, kombinerat med hjälp av bitvis OR-åtgärden. Om du anger SemaphoreRights.Synchronize flaggan kan en tråd ange semaforen och om SemaphoreRights.Modify du anger flaggan kan en tråd anropa Release metoden.
Gäller för
TryOpenExisting(String, SemaphoreRights, Semaphore)
Öppnar den angivna namngivna semaforen, om den redan finns, med önskad säkerhetsåtkomst, och returnerar ett värde som anger om åtgärden lyckades.
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
Parametrar
- name
- String
Namnet på synkroniseringsobjektet som ska delas med andra processer. Namnet är skiftlägeskänsligt. Omvänt snedstreck (\) är reserverat och kan endast användas för att ange ett namnområde. Mer information om namnområden finns i avsnittet kommentarer. Det kan finnas ytterligare begränsningar för namnet beroende på operativsystemet. På Unix-baserade operativsystem måste till exempel namnet efter exkludering av namnområdet vara ett giltigt filnamn.
- rights
- SemaphoreRights
En bitvis kombination av uppräkningsvärdena som representerar önskad säkerhetsåtkomst.
- result
- Semaphore
När den här metoden returneras innehåller ett Semaphore objekt som representerar den namngivna semaforen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.
Returer
trueom den namngivna semaforen öppnades korrekt; annars . false I vissa fall false kan returneras för ogiltiga namn.
Undantag
name är en tom sträng.
-eller-
endast .NET Framework: name är längre än MAX_PATH (260 tecken).
name är null.
name är ogiltigt. Detta kan bero på olika orsaker, inklusive vissa begränsningar som kan finnas i operativsystemet, till exempel ett okänt prefix eller ogiltiga tecken. Observera att namnet och de vanliga prefixen "Global\" och "Local\" är skiftlägeskänsliga. För vissa ogiltiga namn kan metoden returneras false i stället.
-eller-
Det uppstod ett annat fel. Egenskapen HResult kan ge mer information.
Den name är för lång. Längdbegränsningar kan bero på operativsystemet eller konfigurationen.
Den namngivna semaforen finns, men användaren har inte den säkerhetsåtkomst som krävs för att använda den.
Kommentarer
name Kan vara prefix med Global\ eller Local\ för att ange ett namnområde.
Global När namnområdet har angetts kan synkroniseringsobjektet delas med alla processer i systemet.
Local När namnområdet har angetts, vilket också är standard när inget namnområde anges, kan synkroniseringsobjektet delas med processer i samma session. På Windows är en session en inloggningssession och tjänster körs vanligtvis i en annan icke-interaktiv session. På Unix-liknande operativsystem har varje gränssnitt en egen session. Sessionslokala synkroniseringsobjekt kan vara lämpliga för synkronisering mellan processer med en överordnad/underordnad relation där alla körs i samma session. Mer information om synkroniseringsobjektnamn på Windows finns i Object Names.
Om det finns ett synkroniseringsobjekt av den begärda typen i namnområdet öppnas det befintliga synkroniseringsobjektet. Om det inte finns något synkroniseringsobjekt i namnområdet, eller om det finns ett synkroniseringsobjekt av en annan typ i namnområdet, false returneras.
Om du vill skapa systemsemaforen när den inte redan finns använder du en av konstruktorerna Semaphore som har en name parameter.
Om du är osäker på om det finns en namngiven semafor använder du den här metodens överlagring i stället för metodöverbelastningen OpenExisting(String, SemaphoreRights) , vilket utlöser ett undantag om semaforen inte finns.
Parametern rights måste innehålla SemaphoreRights.Synchronize flaggan för att trådar ska kunna ange semafor och SemaphoreRights.Modify flaggan för att tillåta att trådar anropar Release metoden.
Flera anrop till den här metoden som använder samma värde för name returnerar inte nödvändigtvis samma Semaphore objekt, även om de objekt som returneras representerar samma namngivna systemsemafor.
Gäller för
TryOpenExisting(String, NamedWaitHandleOptions, Semaphore)
- Källa:
- Semaphore.cs
- Källa:
- Semaphore.cs
Öppnar den angivna namngivna semaforen, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades. Om alternativen endast är inställda på den aktuella användaren verifieras objektets åtkomstkontroller för den anropande användaren.
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
Parametrar
- name
- String
Namnet på synkroniseringsobjektet som ska delas med andra processer. Namnet är skiftlägeskänsligt. Omvänt snedstreck (\) är reserverat och kan endast användas för att ange ett namnområde. Mer information om namnområden finns i avsnittet kommentarer.
- options
- NamedWaitHandleOptions
Omfångsalternativen för den namngivna semaforen. Standardinställningen är begränsad till den aktuella användaren och den aktuella sessionen. De angivna alternativen kan påverka namnområdet för namnet och åtkomsten till det underliggande semaforobjektet.
- result
- Semaphore
När den här metoden returneras innehåller ett Semaphore objekt som representerar den namngivna semaforen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.
Returer
trueom den namngivna semaforen öppnades korrekt; annars . false I vissa fall false kan returneras för ogiltiga namn.
- Attribut
Undantag
name är en tom sträng.
name är null.
name är ogiltigt. Detta kan bero på olika orsaker, inklusive vissa begränsningar som kan finnas i operativsystemet, till exempel ett okänt prefix eller ogiltiga tecken. Observera att namnet och de vanliga prefixen "Global\" och "Local\" är skiftlägeskänsliga. För vissa ogiltiga namn kan metoden returneras false i stället.
-eller-
Det uppstod ett annat fel. Egenskapen HResult kan ge mer information.
Den name är för lång. Längdbegränsningar kan bero på operativsystemet eller konfigurationen.
Den namngivna semaforen finns, men användaren har inte den säkerhetsåtkomst som krävs för att använda den.
Kommentarer
Om det finns ett synkroniseringsobjekt av den begärda typen i namnområdet öppnas det befintliga synkroniseringsobjektet. Men om options anger åtkomst som är begränsad till den aktuella användaren och synkroniseringsobjektet inte är kompatibelt med det false , returneras. Om det inte finns något synkroniseringsobjekt i namnområdet, eller om det finns ett synkroniseringsobjekt av en annan typ i namnområdet, false returneras också.
Om du vill skapa systemsemaforen när den inte redan finns använder du en av konstruktorerna Semaphore som har en name parameter.
Om du är osäker på om det finns en namngiven semafor använder du den här metodens överlagring i stället för metodöverbelastningen OpenExisting(String) , vilket utlöser ett undantag om semaforen inte finns.