EventWaitHandleAcl.Create 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 en EventWaitHandle instans, vilket gör att en EventWaitHandleSecurity instans kan anges om du vill ange den när händelsen skapas.
public:
static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create(bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle
Parametrar
- initialState
- Boolean
true för att ange det initiala tillståndet till signalerat om den namngivna händelsen skapas som ett resultat av det här anropet; false för att ställa in den på icke-signalerad.
- mode
- EventResetMode
Ett av uppräkningsvärdena som avgör om händelsen återställs automatiskt eller manuellt.
- 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 returnerar anges det här argumentet alltid till true om en lokal händelse skapas, dvs. när name är null eller Empty. Om name har ett giltigt, icke-tomt värde anges det här argumentet till true när systemhändelsen skapas, eller så är det inställt på false om en befintlig systemhändelse hittas med det namnet.
- eventSecurity
- EventWaitHandleSecurity
Den valfria Windows åtkomstkontrollsäkerhet som ska tillämpas.
Returer
Ett objekt som representerar en händelseväntereferens enligt begäran.
Undantag
Uppräkningsvärdet mode låg inom det juridiska intervallet.
-eller-
endast .NET Framework: name är längre än MAX_PATH (260 tecken).
Uppräkningsvärdet mode låg inom det juridiska intervallet. I vissa fall ArgumentException utlöses i stället.
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.
Den namngivna händelsen finns, men användaren har inte önskad säkerhetsåtkomst.
endast .NET Framework: Längden name är längre än MAX_PATH (260 tecken).
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 händelse inte begränsad till den användare som skapade den. Andra användare kanske kan öppna och använda händelsen, inklusive att störa händelsen genom att ställa in eller återställa den på ett olämpligt sätt. Om du vill begränsa åtkomsten till specifika användare kan du skicka in en EventWaitHandleSecurity när du skapar den namngivna händelsen. Undvik att använda namngivna händelser utan åtkomstbegränsningar för system som kan ha obetrodda användare som kör kod.