MutexAcl.Create(Boolean, String, Boolean, MutexSecurity) Metod

Definition

Hämtar eller skapar Mutex en instans, vilket gör att en MutexSecurity kan anges för att ange den när mutex skapas.

public:
 static System::Threading::Mutex ^ Create(bool initiallyOwned, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::MutexSecurity ^ mutexSecurity);
public static System.Threading.Mutex Create(bool initiallyOwned, string? name, out bool createdNew, System.Security.AccessControl.MutexSecurity? mutexSecurity);
static member Create : bool * string * bool * System.Security.AccessControl.MutexSecurity -> System.Threading.Mutex
Public Shared Function Create (initiallyOwned As Boolean, name As String, ByRef createdNew As Boolean, mutexSecurity As MutexSecurity) As Mutex

Parametrar

initiallyOwned
Boolean

trueför att ge den anropande tråden inledande ägarskap för den namngivna system mutex om den namngivna system mutex skapas som ett resultat av det här anropet; annars . false

name
String

Namnet, om synkroniseringsobjektet ska delas med andra processer; eller null en tom sträng. 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.

createdNew
Boolean

När den här metoden returneras är det här argumentet alltid inställt på true om en lokal mutex skapas, dvs. när name är null eller Empty. Om name har ett giltigt värde som inte är tomt anges det här argumentet till true när system mutex skapas, eller så är det inställt på false om ett befintligt system mutex hittas med det namnet. Den här parametern skickas oinitierad.

mutexSecurity
MutexSecurity

Den valfria säkerhet för mutex-åtkomstkontroll som ska tillämpas.

Returer

Ett objekt som representerar ett system mutex, om det heter, eller en lokal mutex, om det är namnlöst.

Undantag

endast .NET Framework: name är längre än MAX_PATH (260 tecken).

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.

-eller-

Det uppstod ett annat fel. Egenskapen HResult kan ge mer information.

endast Windows: name angett ett okänt namnområde. Mer information finns i Objektnamn .

Den name är för lång. Längdbegränsningar kan bero på operativsystemet eller konfigurationen.

Det går inte att skapa ett synkroniseringsobjekt med det angivna name objektet. Ett synkroniseringsobjekt av en annan typ kan ha samma namn.

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 en name tillhandahålls och det redan finns ett synkroniseringsobjekt av den begärda typen i namnområdet öppnas det befintliga synkroniseringsobjektet. Om det redan finns ett synkroniseringsobjekt av en annan typ i namnområdet genereras ett WaitHandleCannotBeOpenedException . Annars skapas ett nytt synkroniseringsobjekt.

Caution

Som standard är en namngiven mutex inte begränsad till den användare som skapade den. Andra användare kanske kan öppna och använda mutex, inklusive att störa mutex genom att ange mutex och inte avsluta det. Om du vill begränsa åtkomsten till specifika användare kan du skicka in en MutexSecurity när du skapar den namngivna mutexen. Undvik att använda namngivna mutexes utan åtkomstbegränsningar för system som kan ha obetrodda användare som kör kod.

Gäller för