Mutex.TryOpenExisting Metod

Definition

Öppnar en angiven med namnet mutex, om den redan finns, och returnerar ett värde som anger om åtgärden lyckades.

Överlagringar

Name Description
TryOpenExisting(String, Mutex)

Öppnar det angivna namnet mutex, om det redan finns, och returnerar ett värde som anger om åtgärden lyckades.

TryOpenExisting(String, MutexRights, Mutex)

Öppnar den angivna namngivna mutexen, om den redan finns, med önskad säkerhetsåtkomst, och returnerar ett värde som anger om åtgärden lyckades.

TryOpenExisting(String, NamedWaitHandleOptions, Mutex)

Öppnar det angivna namnet mutex, om det 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, Mutex)

Källa:
Mutex.cs
Källa:
Mutex.cs
Källa:
Mutex.cs
Källa:
Mutex.cs
Källa:
Mutex.cs

Öppnar det angivna namnet mutex, om det 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::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

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
Mutex

När den här metoden returneras innehåller ett Mutex objekt som representerar den namngivna mutexen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.

Returer

trueom den namngivna mutexen 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.

Det namngivna mutexet finns, men användaren har inte den säkerhetsåtkomst som krävs för att använda det.

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 system mutex när det inte redan finns använder du någon av konstruktorerna Mutex som har en name parameter.

Om du är osäker på om det finns en namngiven mutex använder du den här metodens överlagring i stället för metodöverlagringen OpenExisting(String) , vilket utlöser ett undantag om mutex inte finns.

Flera anrop till den här metoden som använder samma värde för name returnerar inte nödvändigtvis samma Mutex objekt, även om objekten som returneras representerar samma namngivna system mutex.

Den här metodens överlagring motsvarar att anropa TryOpenExisting(String, MutexRights, Mutex) metodens överlagring och ange MutexRights.Synchronize och MutexRights.Modify rättigheter, kombinerat med hjälp av bitvis OR-åtgärden. Om du anger MutexRights.Synchronize flaggan kan en tråd vänta på mutex och om MutexRights.Modify du anger flaggan kan en tråd anropa ReleaseMutex metoden.

Den här metoden begär inte ägarskap för mutex.

Gäller för

TryOpenExisting(String, MutexRights, Mutex)

Öppnar den angivna namngivna mutexen, 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::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

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
MutexRights

En bitvis kombination av uppräkningsvärdena som representerar önskad säkerhetsåtkomst.

result
Mutex

När den här metoden returneras innehåller ett Mutex objekt som representerar den namngivna mutexen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.

Returer

trueom den namngivna mutexen 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.

Det namngivna mutexet finns, men användaren har inte den säkerhetsåtkomst som krävs för att använda det.

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 system mutex när det inte redan finns använder du någon av konstruktorerna Mutex som har en name parameter.

Om du är osäker på om det finns en namngiven mutex använder du den här metodens överlagring i stället för metodöverlagringen OpenExisting(String, MutexRights) , vilket utlöser ett undantag om mutex inte finns.

Parametern rights måste innehålla MutexRights.Synchronize flaggan så att trådar kan vänta på mutex och MutexRights.Modify flaggan för att tillåta att trådar anropar ReleaseMutex metoden.

Flera anrop till den här metoden som använder samma värde för name returnerar inte nödvändigtvis samma Mutex objekt, även om objekten som returneras representerar samma namngivna system mutex.

Den här metoden begär inte ägarskap för mutex.

Gäller för

TryOpenExisting(String, NamedWaitHandleOptions, Mutex)

Källa:
Mutex.cs
Källa:
Mutex.cs

Öppnar det angivna namnet mutex, om det 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::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

Parametrar

name
String

Namnet på synkroniseringsobjektet som ska delas med andra processer. Namnet är skiftlägeskänsligt.

options
NamedWaitHandleOptions

Omfångsalternativen för den namngivna system mutexen. 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 system mutex-objektet.

result
Mutex

När den här metoden returneras innehåller ett Mutex objekt som representerar den namngivna mutexen om anropet lyckades eller null om anropet misslyckades. Den här parametern behandlas som oinitierad.

Returer

trueom den namngivna mutexen har öppnats. annars . false I vissa fall false kan returneras för ogiltiga namn.

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.

Det namngivna mutexet finns, men användaren har inte den säkerhetsåtkomst som krävs för att använda det.

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 system mutex när det inte redan finns använder du någon av konstruktorerna Mutex som har en name parameter.

Om du är osäker på om det finns en namngiven mutex använder du den här metodens överlagring i stället för metodöverlagringen OpenExisting(String) , vilket utlöser ett undantag om mutex inte finns.

Flera anrop till den här metoden som använder samma värde för name returnerar inte nödvändigtvis samma Mutex objekt, även om objekten som returneras representerar samma namngivna system mutex.

Den här metoden begär inte ägarskap för mutex.

Gäller för