Semaphore.TryOpenExisting Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Megnyitja a megadott nevű szemafortot, ha már létezik, és egy értéket ad vissza, amely jelzi, hogy a művelet sikeres volt-e.
Túlterhelések
| Név | Description |
|---|---|
| TryOpenExisting(String, Semaphore) |
Megnyitja a megadott névvel ellátott szemafortot, ha már létezik, és egy értéket ad vissza, amely jelzi, hogy a művelet sikeres volt-e. |
| TryOpenExisting(String, SemaphoreRights, Semaphore) |
Megnyitja a megadott nevű szemaphore-t, ha már létezik, a kívánt biztonsági hozzáféréssel, és visszaad egy értéket, amely jelzi, hogy a művelet sikeres volt-e. |
| TryOpenExisting(String, NamedWaitHandleOptions, Semaphore) |
Megnyitja a megadott névvel ellátott szemafortot, ha már létezik, és egy értéket ad vissza, amely jelzi, hogy a művelet sikeres volt-e. Ha a beállítások csak az aktuális felhasználóra vannak beállítva, a rendszer ellenőrzi az objektum hozzáférés-vezérlését a hívó felhasználó számára. |
TryOpenExisting(String, Semaphore)
- Forrás:
- Semaphore.cs
- Forrás:
- Semaphore.cs
- Forrás:
- Semaphore.cs
- Forrás:
- Semaphore.cs
- Forrás:
- Semaphore.cs
Megnyitja a megadott névvel ellátott szemafortot, ha már létezik, és egy értéket ad vissza, amely jelzi, hogy a művelet sikeres volt-e.
public:
static bool TryOpenExisting(System::String ^ name, [Runtime::InteropServices::Out] System::Threading::Semaphore ^ % result);
public static bool TryOpenExisting(string name, out System.Threading.Semaphore result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, out System.Threading.Semaphore? result);
public static bool TryOpenExisting(string name, out System.Threading.Semaphore? result);
static member TryOpenExisting : string * Semaphore -> bool
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, ByRef result As Semaphore) As Boolean
Paraméterek
- name
- String
A más folyamatokkal megosztani kívánt szinkronizálási objektum neve. A név megkülönbözteti a kis- és nagybetűket. A fordított perjel karakter (\) fenntartott, és csak névtér megadására használható. A névterekről további információt a megjegyzések szakaszban talál. Az operációs rendszertől függően további korlátozások is lehetnek a névre. Unix-alapú operációs rendszereken például a névtér kizárása utáni névnek érvényes fájlnévnek kell lennie.
- result
- Semaphore
Amikor ez a metódus visszatér, egy Semaphore objektumot tartalmaz, amely a névvel ellátott szemaforot jelöli, ha a hívás sikeres volt, vagy null ha a hívás sikertelen volt. Ez a paraméter nem inicializáltként van kezelve.
Válaszok
trueha a nevesített szemaphore sikeresen meg lett nyitva; egyéb esetben. false Bizonyos esetekben false érvénytelen nevek adhatók vissza.
- Attribútumok
Kivételek
name üres sztring.
-vagy-
csak .NET keretrendszer: name hosszabb, mint MAX_PATH (260 karakter).
name az null.
name érvénytelen. Ennek különböző okai lehetnek, beleértve az operációs rendszer által esetleg elhelyezett korlátozásokat, például ismeretlen előtagot vagy érvénytelen karaktereket. Vegye figyelembe, hogy a "Global\" és a "Local\" név és gyakori előtagok megkülönböztetik a kis- és nagybetűket. Néhány érvénytelen név esetén a metódus visszatérhet false .
-vagy-
Más hiba történt. Előfordulhat, hogy a HResult tulajdonság további információkat tartalmaz.
Túl name hosszú. A hosszkorlátozások az operációs rendszertől vagy a konfigurációtól függhetnek.
A névvel ellátott szemaphore létezik, de a felhasználó nem rendelkezik a használatához szükséges biztonsági hozzáféréssel.
Megjegyzések
Az name előtag lehet névtérrel, Global\ vagy Local\ megadható.
Global A névtér megadása után a szinkronizálási objektum megosztható a rendszer bármely folyamatával. Ha a Local névtér meg van adva, ami szintén az alapértelmezett, ha nincs megadva névtér, a szinkronizálási objektum megosztható az ugyanabban a munkamenetben lévő folyamatokkal. A Windows a munkamenet egy bejelentkezési munkamenet, és a szolgáltatások általában egy másik, nem interaktív munkamenetben futnak. Unix-szerű operációs rendszereken minden rendszerhéj saját munkamenettel rendelkezik. A munkamenet-helyi szinkronizálási objektumok megfelelőek lehetnek a szülő-gyermek kapcsolattal rendelkező folyamatok közötti szinkronizáláshoz, ahol mind ugyanabban a munkamenetben futnak. Az Windows szinkronizálási objektumneveiről további információt a Object Names című témakörben talál.
Ha a névtérben a kért típusú szinkronizálási objektum található, a meglévő szinkronizálási objektum megnyílik. Ha a névtérben nem létezik szinkronizálási objektum, vagy egy másik típusú szinkronizálási objektum található a névtérben, false a függvény visszaadja.
Ha még nem létezik rendszerszemafortot létrehozni, használja a Semaphore paraméterrel name rendelkező konstruktorok egyikét.
Ha nem biztos abban, hogy létezik-e nevesített szemaphore, használja ezt a OpenExisting(String) metódust túlterhelés helyett, ami kivételt okoz, ha a szemaphore nem létezik.
Ez a metódus túlterhelése egyenértékű a metódus túlterhelésének TryOpenExisting meghívásával, valamint a megadásával SemaphoreRights.Synchronize és SemaphoreRights.Modify a jogosultságokkal, a bitenkénti VAGY művelettel kombinálva. A jelölő megadásával egy SemaphoreRights.Synchronize szál beléphet a szemaforba, a jelölő megadásával SemaphoreRights.Modify pedig egy szál meghívhatja a metódust Release .
A következőre érvényes:
TryOpenExisting(String, SemaphoreRights, Semaphore)
Megnyitja a megadott nevű szemaphore-t, ha már létezik, a kívánt biztonsági hozzáféréssel, és visszaad egy értéket, amely jelzi, hogy a művelet sikeres volt-e.
public:
static bool TryOpenExisting(System::String ^ name, System::Security::AccessControl::SemaphoreRights rights, [Runtime::InteropServices::Out] System::Threading::Semaphore ^ % result);
public static bool TryOpenExisting(string name, System.Security.AccessControl.SemaphoreRights rights, out System.Threading.Semaphore result);
static member TryOpenExisting : string * System.Security.AccessControl.SemaphoreRights * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, rights As SemaphoreRights, ByRef result As Semaphore) As Boolean
Paraméterek
- name
- String
A más folyamatokkal megosztani kívánt szinkronizálási objektum neve. A név megkülönbözteti a kis- és nagybetűket. A fordított perjel karakter (\) fenntartott, és csak névtér megadására használható. A névterekről további információt a megjegyzések szakaszban talál. Az operációs rendszertől függően további korlátozások is lehetnek a névre. Unix-alapú operációs rendszereken például a névtér kizárása utáni névnek érvényes fájlnévnek kell lennie.
- rights
- SemaphoreRights
A kívánt biztonsági hozzáférést képviselő számbavételi értékek bitenkénti kombinációja.
- result
- Semaphore
Amikor ez a metódus visszatér, egy Semaphore objektumot tartalmaz, amely a névvel ellátott szemaforot jelöli, ha a hívás sikeres volt, vagy null ha a hívás sikertelen volt. Ez a paraméter nem inicializáltként van kezelve.
Válaszok
trueha a nevesített szemaphore sikeresen meg lett nyitva; egyéb esetben. false Bizonyos esetekben false érvénytelen nevek adhatók vissza.
Kivételek
name üres sztring.
-vagy-
csak .NET keretrendszer: name hosszabb, mint MAX_PATH (260 karakter).
name az null.
name érvénytelen. Ennek különböző okai lehetnek, beleértve az operációs rendszer által esetleg elhelyezett korlátozásokat, például ismeretlen előtagot vagy érvénytelen karaktereket. Vegye figyelembe, hogy a "Global\" és a "Local\" név és gyakori előtagok megkülönböztetik a kis- és nagybetűket. Néhány érvénytelen név esetén a metódus visszatérhet false .
-vagy-
Más hiba történt. Előfordulhat, hogy a HResult tulajdonság további információkat tartalmaz.
Túl name hosszú. A hosszkorlátozások az operációs rendszertől vagy a konfigurációtól függhetnek.
A névvel ellátott szemaphore létezik, de a felhasználó nem rendelkezik a használatához szükséges biztonsági hozzáféréssel.
Megjegyzések
Az name előtag lehet névtérrel, Global\ vagy Local\ megadható.
Global A névtér megadása után a szinkronizálási objektum megosztható a rendszer bármely folyamatával. Ha a Local névtér meg van adva, ami szintén az alapértelmezett, ha nincs megadva névtér, a szinkronizálási objektum megosztható az ugyanabban a munkamenetben lévő folyamatokkal. A Windows a munkamenet egy bejelentkezési munkamenet, és a szolgáltatások általában egy másik, nem interaktív munkamenetben futnak. Unix-szerű operációs rendszereken minden rendszerhéj saját munkamenettel rendelkezik. A munkamenet-helyi szinkronizálási objektumok megfelelőek lehetnek a szülő-gyermek kapcsolattal rendelkező folyamatok közötti szinkronizáláshoz, ahol mind ugyanabban a munkamenetben futnak. Az Windows szinkronizálási objektumneveiről további információt a Object Names című témakörben talál.
Ha a névtérben a kért típusú szinkronizálási objektum található, a meglévő szinkronizálási objektum megnyílik. Ha a névtérben nem létezik szinkronizálási objektum, vagy egy másik típusú szinkronizálási objektum található a névtérben, false a függvény visszaadja.
Ha még nem létezik rendszerszemafortot létrehozni, használja a Semaphore paraméterrel name rendelkező konstruktorok egyikét.
Ha nem biztos abban, hogy létezik-e nevesített szemaphore, használja ezt a OpenExisting(String, SemaphoreRights) metódust túlterhelés helyett, ami kivételt okoz, ha a szemaphore nem létezik.
A rights paraméternek tartalmaznia kell a SemaphoreRights.Synchronize jelölőt, hogy a szálak beléphessenek a szemaforba, a jelzőnek pedig engedélyeznie kell, hogy a SemaphoreRights.Modify szálak meghívják a metódust Release .
A metódus több hívása, amelyek ugyanazt az értéket name használják, nem feltétlenül ugyanazt Semaphore az objektumot adják vissza, annak ellenére, hogy a visszaadott objektumok ugyanazt a nevesített rendszerszemaphore-t képviselik.
A következőre érvényes:
TryOpenExisting(String, NamedWaitHandleOptions, Semaphore)
- Forrás:
- Semaphore.cs
- Forrás:
- Semaphore.cs
Megnyitja a megadott névvel ellátott szemafortot, ha már létezik, és egy értéket ad vissza, amely jelzi, hogy a művelet sikeres volt-e. Ha a beállítások csak az aktuális felhasználóra vannak beállítva, a rendszer ellenőrzi az objektum hozzáférés-vezérlését a hívó felhasználó számára.
public:
static bool TryOpenExisting(System::String ^ name, System::Threading::NamedWaitHandleOptions options, [Runtime::InteropServices::Out] System::Threading::Semaphore ^ % result);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static bool TryOpenExisting(string name, System.Threading.NamedWaitHandleOptions options, out System.Threading.Semaphore? result);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member TryOpenExisting : string * System.Threading.NamedWaitHandleOptions * Semaphore -> bool
Public Shared Function TryOpenExisting (name As String, options As NamedWaitHandleOptions, ByRef result As Semaphore) As Boolean
Paraméterek
- name
- String
A más folyamatokkal megosztani kívánt szinkronizálási objektum neve. A név megkülönbözteti a kis- és nagybetűket. A fordított perjel karakter (\) fenntartott, és csak névtér megadására használható. A névterekről további információt a megjegyzések szakaszban talál.
- options
- NamedWaitHandleOptions
A névvel ellátott szemapóra hatókörbeállításai. Alapértelmezés szerint a hozzáférés csak az aktuális felhasználóra és az aktuális munkamenetre korlátozódik. A megadott beállítások hatással lehetnek a névtérre és a mögöttes szemaphore objektumhoz való hozzáférésre.
- result
- Semaphore
Amikor ez a metódus visszatér, egy Semaphore objektumot tartalmaz, amely a névvel ellátott szemaforot jelöli, ha a hívás sikeres volt, vagy null ha a hívás sikertelen volt. Ez a paraméter nem inicializáltként van kezelve.
Válaszok
trueha a nevesített szemaphore sikeresen meg lett nyitva; egyéb esetben. false Bizonyos esetekben false érvénytelen nevek adhatók vissza.
- Attribútumok
Kivételek
name üres sztring.
name az null.
name érvénytelen. Ennek különböző okai lehetnek, beleértve az operációs rendszer által esetleg elhelyezett korlátozásokat, például ismeretlen előtagot vagy érvénytelen karaktereket. Vegye figyelembe, hogy a "Global\" és a "Local\" név és gyakori előtagok megkülönböztetik a kis- és nagybetűket. Néhány érvénytelen név esetén a metódus visszatérhet false .
-vagy-
Más hiba történt. Előfordulhat, hogy a HResult tulajdonság további információkat tartalmaz.
Túl name hosszú. A hosszkorlátozások az operációs rendszertől vagy a konfigurációtól függhetnek.
A névvel ellátott szemaphore létezik, de a felhasználó nem rendelkezik a használatához szükséges biztonsági hozzáféréssel.
Megjegyzések
Ha a névtérben a kért típusú szinkronizálási objektum található, a meglévő szinkronizálási objektum megnyílik. Ha azonban az aktuális felhasználó számára korlátozott hozzáférést ad meg, options és a szinkronizálási objektum nem kompatibilis vele, false a rendszer visszaadja. Ha egy szinkronizálási objektum nem létezik a névtérben, vagy egy másik típusú szinkronizálási objektum található a névtérben, false akkor a függvény is visszaadja.
Ha még nem létezik rendszerszemafortot létrehozni, használja a Semaphore paraméterrel name rendelkező konstruktorok egyikét.
Ha nem biztos abban, hogy létezik-e nevesített szemaphore, használja ezt a OpenExisting(String) metódust túlterhelés helyett, ami kivételt okoz, ha a szemaphore nem létezik.