EventWaitHandle.TryOpenExisting Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Otevře zadanou pojmenovanou synchronizační událost, pokud již existuje, a vrátí hodnotu, která označuje, jestli operace byla úspěšná.
Přetížení
TryOpenExisting(String, EventWaitHandle) |
Otevře zadanou pojmenovanou událost synchronizace, pokud již existuje, a vrátí hodnotu, která označuje, jestli operace byla úspěšná. |
TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle) |
Otevře zadanou pojmenovanou událost synchronizace, pokud již existuje, s požadovaným přístupem k zabezpečení a vrátí hodnotu, která označuje, jestli operace byla úspěšná. |
TryOpenExisting(String, EventWaitHandle)
Otevře zadanou pojmenovanou událost synchronizace, pokud již existuje, a vrátí hodnotu, která označuje, jestli operace byla ú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 synchronizačního objektu, který se má otevřít a sdílet s dalšími procesy. V názvu se rozlišují velká a malá písmena.
- result
- EventWaitHandle
Když tato metoda vrátí, obsahuje objekt, který představuje pojmenovanou EventWaitHandle synchronizační událost, pokud volání proběhlo úspěšně nebo null
pokud volání selhalo. Tento parametr se považuje za neinicializovaný.
Návraty
true
pokud se pojmenovaná událost synchronizace úspěšně otevřela; v opačném případě . false
V některých případech false
může být vrácena neplatná jména.
- 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, například neznámou předponu nebo neplatné znaky. Všimněte si, že název a běžné předpony "Global and "Local" are case-sensitive". U některých neplatných názvů může metoda místo toho vrátit false
.
-nebo-
Došlo k nějaké jiné chybě. Vlastnost HResult
může poskytovat další informace.
Je name
to příliš dlouhé. Omezení délky můžou 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
Může name
být předpona nebo Global\
Local\
zadat obor názvů. Global
Po zadání 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ů, může být synchronizační objekt sdílen s procesy ve stejné relaci. V Windows je relace přihlášení a služby se obvykle spouští v jiné neinteraktivní relaci. V operačních systémech Unix má každá prostředí vlastní relaci. Objekty místní synchronizace relace můžou být vhodné pro synchronizaci mezi procesy s relací nadřazené/podřízené, kde se všechny spouští ve stejné relaci. Další informace o názvech synchronizačních objektů v Windows najdete v tématu Názvy objektů.
Pokud v oboru názvů existuje synchronizační objekt požadovaného typu, otevře se existující synchronizační objekt. Pokud synchronizační objekt v oboru názvů neexistuje nebo v oboru názvů existuje synchronizační objekt jiného typu, false
vrátí se.
Pokud chcete vytvořit událost systému, pokud ještě neexistuje, použijte jeden z EventWaitHandle konstruktorů, které mají name
parametr.
Pokud si nejste jistí, jestli pojmenovaná synchronizační událost existuje, použijte tuto metodu přetížení místo OpenExisting(String) 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.Synchronize a EventWaitHandleRights.Modify práva kombinované pomocí bitové operace OR. Určení EventWaitHandleRights.Synchronize příznaku umožňuje vláknu čekat na pojmenovanou systémovou událost a zadání EventWaitHandleRights.Modify příznaku umožňuje vlákno volat Set a Reset metody.
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 systémovou událost.
Platí pro
TryOpenExisting(String, EventWaitHandleRights, EventWaitHandle)
Otevře zadanou pojmenovanou událost synchronizace, pokud již existuje, s požadovaným přístupem k zabezpečení a vrátí hodnotu, která označuje, jestli operace byla ú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 události synchronizace systému, která se má otevřít.
- rights
- EventWaitHandleRights
Bitové kombinace hodnot výčtu, které představují požadovaný přístup zabezpečení.
- result
- EventWaitHandle
Když tato metoda vrátí, obsahuje objekt, který představuje pojmenovanou EventWaitHandle synchronizační událost, pokud volání proběhlo úspěšně nebo null
pokud volání selhalo. Tento parametr se považuje za neinicializovaný.
Návraty
true
pokud se pojmenovaná událost synchronizace úspěšně otevřela; v opačném případě . false
V některých případech false
může být vrácena neplatná jména.
- 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, například neznámou předponu nebo neplatné znaky. Všimněte si, že název a běžné předpony "Global and "Local" are case-sensitive". U některých neplatných názvů může metoda místo toho vrátit false
.
-nebo-
Došlo k nějaké jiné chybě. Vlastnost HResult
může poskytovat další informace.
Je name
to příliš dlouhé. Omezení délky můžou 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
Může name
být předpona nebo Global\
Local\
zadat obor názvů. Global
Po zadání 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ů, může být synchronizační objekt sdílen s procesy ve stejné relaci. V Windows je relace přihlášení a služby se obvykle spouští v jiné neinteraktivní relaci. V operačních systémech Unix má každá prostředí vlastní relaci. Objekty místní synchronizace relace můžou být vhodné pro synchronizaci mezi procesy s relací nadřazené/podřízené, kde se všechny spouští ve stejné relaci. Další informace o názvech synchronizačních objektů v Windows najdete v tématu Názvy objektů.
Pokud v oboru názvů existuje synchronizační objekt požadovaného typu, otevře se existující synchronizační objekt. Pokud synchronizační objekt v oboru názvů neexistuje nebo v oboru názvů existuje synchronizační objekt jiného typu, false
vrátí se.
Pokud chcete vytvořit událost systému, pokud ještě neexistuje, použijte jeden z EventWaitHandle konstruktorů, které mají name
parametr.
Pokud si nejste jistí, jestli pojmenovaná synchronizační událost existuje, použijte tuto metodu přetížení místo OpenExisting(String, EventWaitHandleRights) přetížení metody, která vyvolá výjimku, pokud synchronizační událost neexistuje.
Parametr rights
musí obsahovat EventWaitHandleRights.Synchronize příznak, který umožňuje vlákenm čekat na událost a EventWaitHandleRights.Modify příznak, který umožňuje vlákenm Set volat a Reset metody.
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 systémovou událost.