Nyelv

Semaphore.TryOpenExisting Metódus

Definíció

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.

A következőre érvényes: