EventWaitHandle.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 namngiven synkroniseringshändelse, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades.
Överlagringar
| Name | Description |
|---|---|
| TryOpenExisting(String, EventWaitHandle) |
Öppnar den angivna namngivna synkroniseringshändelsen, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades. |
| TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) |
Öppnar den angivna namngivna synkroniseringshändelsen, om den redan finns, med önskad säkerhetsåtkomst, och returnerar ett värde som anger om åtgärden lyckades. |
TryOpenExisting(String, EventWaitHandle)
Öppnar den angivna namngivna synkroniseringshändelsen, 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::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
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
static member TryOpenExisting : string * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As EventWaitHandle) As Boolean
Parametrar
- name
- String
Namnet på det synkroniseringsobjekt som ska öppnas och delas med andra processer. Namnet är skiftlägeskänsligt. Omvänt snedstreck (\) är reserverat och kan bara 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
- EventWaitHandle
När den här metoden returneras innehåller ett EventWaitHandle objekt som representerar den namngivna synkroniseringshändelsen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.
Returer
trueom den namngivna synkroniseringshändelsen har öppnats. 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 händelsen finns, men användaren har inte önskad säkerhetsåtkomst.
Kommentarer
name Kan prefixet 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 systemhändelsen när den inte redan finns använder du någon av konstruktorerna EventWaitHandle som har en name parameter.
Om du är osäker på om det finns en namngiven synkroniseringshändelse använder du den här metodens överlagring i stället för metodöverbelastningen OpenExisting(String) , vilket utlöser ett undantag om synkroniseringshändelsen inte finns.
Den här metodens överlagring motsvarar att anropa TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) metodens överlagring och ange EventWaitHandleRights.Synchronize och EventWaitHandleRights.Modify rättigheter, kombinerat med hjälp av bitvis OR-åtgärden. Om du anger EventWaitHandleRights.Synchronize flaggan kan en tråd vänta på den namngivna systemhändelsen, och om EventWaitHandleRights.Modify du anger flaggan kan en tråd anropa Set metoderna och Reset .
Flera anrop till den här metoden som använder samma värde för name returnerar inte nödvändigtvis samma EventWaitHandle objekt, även om de objekt som returneras representerar samma namngivna systemhändelse.
Gäller för
TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)
Öppnar den angivna namngivna synkroniseringshändelsen, 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::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
Parametrar
- name
- String
Namnet på det synkroniseringsobjekt som ska öppnas och delas med andra processer. Namnet är skiftlägeskänsligt. Omvänt snedstreck (\) är reserverat och kan bara 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
- EventWaitHandleRights
En bitvis kombination av uppräkningsvärdena som representerar önskad säkerhetsåtkomst.
- result
- EventWaitHandle
När den här metoden returneras innehåller ett EventWaitHandle objekt som representerar den namngivna synkroniseringshändelsen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.
Returer
trueom den namngivna synkroniseringshändelsen har öppnats. 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 händelsen finns, men användaren har inte önskad säkerhetsåtkomst.
Kommentarer
name Kan prefixet 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 systemhändelsen när den inte redan finns använder du någon av konstruktorerna EventWaitHandle som har en name parameter.
Om du är osäker på om det finns en namngiven synkroniseringshändelse använder du den här metodens överlagring i stället för metodöverbelastningen OpenExisting(String, EventWaitHandleRights) , vilket utlöser ett undantag om synkroniseringshändelsen inte finns.
Parametern rights måste innehålla EventWaitHandleRights.Synchronize flaggan så att trådar kan vänta på händelsen och EventWaitHandleRights.Modify flaggan för att tillåta trådar att anropa Set metoderna och Reset .
Flera anrop till den här metoden som använder samma värde för name returnerar inte nödvändigtvis samma EventWaitHandle objekt, även om de objekt som returneras representerar samma namngivna systemhändelse.