Sdílet prostřednictvím


EventWaitHandleAcl.Create Metoda

Definice

Získá nebo vytvoří EventWaitHandle instanci, což umožňuje, aby EventWaitHandleSecurity instance byla volitelně zadána k nastavení během vytváření události.

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

Parametry

initialState
Boolean

true nastavit počáteční stav signalizovat, pokud pojmenovaná událost je vytvořena v důsledku tohoto volání; false a nastavte ho na nesignalizovat.

mode
EventResetMode

Jedna z hodnot výčtu, která určuje, jestli se událost resetuje automaticky nebo ručně.

name
String

Název, pokud synchronizační objekt má být sdílen s jinými procesy; null nebo prázdný řetězec. V názvu se rozlišují velká a malá písmena. Znak zpětného lomítka (\) je vyhrazený a lze ho použít pouze k určení oboru názvů. Další informace o oborech názvů najdete v části poznámky. V závislosti na operačním systému můžou existovat další omezení názvu. Například v unixových operačních systémech musí být název po vyloučení oboru názvů platný název souboru.

createdNew
Boolean

Když tato metoda vrátí hodnotu , je tento argument vždy nastaven na true hodnotu , pokud je vytvořena místní událost, tj. když name je null nebo Empty. Pokud name má platnou, neprázdnou hodnotu, je tento argument nastaven na true hodnotu při vytvoření systémové události nebo je nastaven na false hodnotu , pokud je nalezena existující systémová událost s tímto názvem.

eventSecurity
EventWaitHandleSecurity

Volitelné zabezpečení řízení přístupu Windows, které se má použít.

Návraty

Objekt, který představuje obslužnou rutinu čekání události podle požadavku.

Výjimky

Hodnota mode výčtu byla mimo zákonný rozsah.

-nebo-

Pouze rozhraní .NET Framework: name je delší než MAX_PATH (260 znaků).

Hodnota mode výčtu byla mimo zákonný rozsah. V některých případech ArgumentException se místo toho vyvolá.

Formát name je neplatný. Může to být z různých důvodů, včetně některých omezení, která může operační systém použít, například kvůli neznámé předponě nebo neplatným znakům. Všimněte si, že názvy a běžné předpony Global a Local rozlišují malá a velká písmena.

-nebo-

Došlo k jiné chybě. Vlastnost HResult může poskytnout další informace.

Pouze windows: name zadal neznámý obor názvů. Další informace najdete v tématu Názvy objektů .

Je name příliš dlouhý. Omezení délky může záviset na operačním systému nebo konfiguraci.

Synchronizační objekt se zadaným name objektem nelze vytvořit. Objekt synchronizace jiného typu může mít stejný název.

Pojmenovaná událost existuje, ale uživatel nemá požadovaný přístup zabezpečení.

Pouze rozhraní .NET Framework: Délka name přesahuje MAX_PATH (260 znaků).

Poznámky

K name zadání oboru názvů může mít předponu Global\ nebo Local\ . Global Pokud je obor názvů zadaný, synchronizační objekt může být sdílen se všemi procesy v systému. Local Pokud je zadán obor názvů, což je také výchozí, pokud není zadán žádný obor názvů, synchronizační objekt může být sdílen s procesy ve stejné relaci. Ve Windows je relace přihlášení a služby obvykle běží v jiné neinteraktivní relaci. V unixových operačních systémech má každé prostředí svoji vlastní relaci. Objekty místní synchronizace relace mohou být vhodné pro synchronizaci mezi procesy se vztahem nadřazenosti a podřízenosti, kde se všechny spouští ve stejné relaci. Další informace o názvech synchronizačních objektů ve Windows najdete v tématu Názvy objektů.

name Pokud je zadán a objekt synchronizace požadovaného typu již existuje v oboru názvů, existující synchronizační objekt je otevřen. Pokud synchronizační objekt jiného typu již v oboru názvů existuje, WaitHandleCannotBeOpenedException vyvolá se objekt . V opačném případě se vytvoří nový synchronizační objekt.

Upozornění

Ve výchozím nastavení není pojmenovaná událost omezena na uživatele, který ji vytvořil. Ostatní uživatelé mohou mít možnost událost otevřít a používat, včetně toho, že událost narušují tím, že ji nastavují nebo resetují nevhodně. Pokud chcete omezit přístup na konkrétní uživatele, můžete při vytváření pojmenované události předat .EventWaitHandleSecurity Vyhněte se používání pojmenovaných událostí bez omezení přístupu v systémech, které můžou mít nedůvěryhodné uživatele spouštěné kódem.

Platí pro