MutexAcl.Create(Boolean, String, Boolean, MutexSecurity) 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.
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.