Sdílet prostřednictvím


EventWaitHandle.TryOpenExisting Metoda

Definice

Otevře zadanou pojmenovanou synchronizační událost, pokud již existuje, a vrátí hodnotu, která označuje, jestli operace proběhla úspěšně.

Přetížení

TryOpenExisting(String, EventWaitHandle)

Otevře zadanou pojmenovanou synchronizační událost, pokud již existuje, a vrátí hodnotu, která označuje, zda byla operace úspěšná.

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

Otevře zadanou pojmenovanou synchronizační událost, pokud již existuje, s požadovaným přístupem zabezpečení a vrátí hodnotu, která označuje, zda byla operace úspěšná.

TryOpenExisting(String, EventWaitHandle)

Zdroj:
EventWaitHandle.cs
Zdroj:
EventWaitHandle.cs
Zdroj:
EventWaitHandle.cs

Otevře zadanou pojmenovanou synchronizační událost, pokud již existuje, a vrátí hodnotu, která označuje, zda byla operace úspěšná.

public:
 static bool TryOpenExisting(System::String ^ name, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle? result);
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle result);
public static bool TryOpenExisting (string name, out System.Threading.EventWaitHandle? result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * EventWaitHandle -> bool
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * EventWaitHandle -> bool
static member TryOpenExisting : string * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As EventWaitHandle) As Boolean

Parametry

name
String

Název objektu synchronizace, který se má otevřít a sdílet s jinými procesy. 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 s poznámkami. V závislosti na operačním systému můžou existovat další omezení pro název. Například v operačních systémech se systémem Unix musí být název po vyloučení oboru názvů platný název souboru.

result
EventWaitHandle

Když tato metoda vrátí, obsahuje EventWaitHandle objekt, který představuje pojmenovanou synchronizační událost, pokud volání bylo úspěšné, nebo null pokud volání selhalo. Tento parametr je považován za neinicializovaný.

Návraty

truepokud se pojmenovaná synchronizační událost úspěšně otevřela; v opačném případě . false V některých případech false může být vrácena pro neplatné názvy.

Atributy

Výjimky

name je prázdný řetězec.

-nebo-

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

name je null.

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 umístit, jako je neznámá předpona nebo neplatné znaky. Všimněte si, že v názvu a běžných předponách Global a Local se rozlišují velká a malá písmena. U některých neplatných názvů může metoda místo toho vrátit false .

-nebo-

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

Je name moc dlouhý. Omezení délky mohou záviset na operačním systému nebo konfiguraci.

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

Poznámky

Předpona nameGlobal\ může mít předponu nebo Local\ k určení oboru názvů. Při zadání Global oboru názvů může být synchronizační objekt sdílen s libovolnými 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. V systému 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 s nadřazeným a podřízeným vztahem, kde se všechny spouští ve stejné relaci. Další informace o názvech objektů synchronizace ve Windows najdete v tématu Názvy objektů.

Pokud v oboru názvů existuje objekt synchronizace požadovaného typu, otevře se existující objekt synchronizace. Pokud objekt synchronizace v oboru názvů neexistuje nebo v oboru názvů existuje objekt synchronizace jiného typu, false je vrácen.

Pokud chcete vytvořit systémovou událost, pokud ještě neexistuje, použijte jeden z EventWaitHandle konstruktorů, který má name parametr.

Pokud si nejste jisti, zda existuje pojmenovaná synchronizační událost, použijte tuto metodu OpenExisting(String) přetížení místo přetížení metody, která vyvolá výjimku, pokud synchronizační událost neexistuje.

Toto přetížení metody je ekvivalentní volání TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) přetížení metody a určení EventWaitHandleRights.SynchronizeEventWaitHandleRights.Modify a práv v kombinaci pomocí bitové operace OR. Zadání příznaku EventWaitHandleRights.Synchronize umožní vláknu čekat na pojmenovanou systémovou událost a určení příznaku EventWaitHandleRights.Modify umožní vláknu volat Set metody a Reset .

Více volání této metody, které používají stejnou hodnotu pro name nemusí nutně vrátit stejný EventWaitHandle objekt, i když objekty, které jsou vráceny představují stejnou pojmenovanou událost systému.

Platí pro

TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)

Otevře zadanou pojmenovanou synchronizační událost, pokud již existuje, s požadovaným přístupem zabezpečení a vrátí hodnotu, která označuje, zda byla operace úspěšná.

public:
 static bool TryOpenExisting(System::String ^ name, System::Security::AccessControl::EventWaitHandleRights rights, [Runtime::InteropServices::Out] System::Threading::EventWaitHandle ^ % result);
[System.Security.SecurityCritical]
public static bool TryOpenExisting (string name, System.Security.AccessControl.EventWaitHandleRights rights, out System.Threading.EventWaitHandle result);
[<System.Security.SecurityCritical>]
static member TryOpenExisting : string * System.Security.AccessControl.EventWaitHandleRights * EventWaitHandle -> bool
Public Shared Function TryOpenExisting (name As String, rights As EventWaitHandleRights, ByRef result As EventWaitHandle) As Boolean

Parametry

name
String

Název objektu synchronizace, který se má otevřít a sdílet s jinými procesy. 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 s poznámkami. V závislosti na operačním systému můžou existovat další omezení pro název. Například v operačních systémech se systémem Unix musí být název po vyloučení oboru názvů platný název souboru.

rights
EventWaitHandleRights

Bitové kombinace hodnot výčtu, které představují požadovaný přístup zabezpečení.

result
EventWaitHandle

Když tato metoda vrátí, obsahuje EventWaitHandle objekt, který představuje pojmenovanou synchronizační událost, pokud volání bylo úspěšné, nebo null pokud volání selhalo. Tento parametr je považován za neinicializovaný.

Návraty

truepokud se pojmenovaná synchronizační událost úspěšně otevřela; v opačném případě . false V některých případech false může být vrácena pro neplatné názvy.

Atributy

Výjimky

name je prázdný řetězec.

-nebo-

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

name je null.

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 umístit, jako je neznámá předpona nebo neplatné znaky. Všimněte si, že v názvu a běžných předponách Global a Local se rozlišují velká a malá písmena. U některých neplatných názvů může metoda místo toho vrátit false .

-nebo-

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

Je name moc dlouhý. Omezení délky mohou záviset na operačním systému nebo konfiguraci.

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

Poznámky

Předpona nameGlobal\ může mít předponu nebo Local\ k určení oboru názvů. Při zadání Global oboru názvů může být synchronizační objekt sdílen s libovolnými 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. V systému 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 s nadřazeným a podřízeným vztahem, kde se všechny spouští ve stejné relaci. Další informace o názvech objektů synchronizace ve Windows najdete v tématu Názvy objektů.

Pokud v oboru názvů existuje objekt synchronizace požadovaného typu, otevře se existující objekt synchronizace. Pokud objekt synchronizace v oboru názvů neexistuje nebo v oboru názvů existuje objekt synchronizace jiného typu, false je vrácen.

Pokud chcete vytvořit systémovou událost, pokud ještě neexistuje, použijte jeden z EventWaitHandle konstruktorů, který má name parametr.

Pokud si nejste jisti, zda existuje pojmenovaná synchronizační událost, použijte tuto metodu OpenExisting(String, EventWaitHandleRights) přetížení místo přetížení metody, která vyvolá výjimku, pokud synchronizační událost neexistuje.

Parametr rights musí obsahovat EventWaitHandleRights.Synchronize příznak, aby vlákna mohla čekat na událost, a EventWaitHandleRights.Modify příznak, aby vlákna mohla volat Set metody a Reset .

Více volání této metody, které používají stejnou hodnotu pro name nemusí nutně vrátit stejný EventWaitHandle objekt, i když objekty, které jsou vráceny představují stejnou pojmenovanou událost systému.

Platí pro