Share via


MutexAcl.Create(Boolean, String, Boolean, MutexSecurity) Metoda

Definice

Získá nebo vytvoří Mutex instanci, což umožňuje MutexSecurity volitelně zadat a nastavit ji během vytváření mutex.

public:
 static System::Threading::Mutex ^ Create(bool initiallyOwned, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::MutexSecurity ^ mutexSecurity);
public static System.Threading.Mutex Create (bool initiallyOwned, string? name, out bool createdNew, System.Security.AccessControl.MutexSecurity? mutexSecurity);
static member Create : bool * string * bool * System.Security.AccessControl.MutexSecurity -> System.Threading.Mutex
Public Shared Function Create (initiallyOwned As Boolean, name As String, ByRef createdNew As Boolean, mutexSecurity As MutexSecurity) As Mutex

Parametry

initiallyOwned
Boolean

truek poskytnutí počátečního vlastnictví volajícího vlákna pojmenovaného systémového mutexu, pokud je v důsledku tohoto volání vytvořen pojmenovaný systémový mutex; v opačném případě . false

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 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.

createdNew
Boolean

Když tato metoda vrátí, je tento argument vždy nastaven na true , pokud je vytvořen místní mutex, tj. když name je null nebo Empty. Pokud name má platnou neprázdnou hodnotu, je tento argument nastaven na true při vytvoření systémového mutexu nebo je nastaven na false hodnotu, pokud je nalezen existující systémový mutex s tímto názvem. Tento parametr se předává neinicializovaný.

mutexSecurity
MutexSecurity

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

Návraty

Objekt, který představuje systémový mutex, pokud je pojmenovaný, nebo místní mutex, pokud bez názvu.

Výjimky

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

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.

-nebo-

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

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

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

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

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ů.

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

Upozornění

Ve výchozím nastavení není pojmenovaný mutex omezen na uživatele, který ho vytvořil. Jiní uživatelé můžou mutex otevřít a používat, včetně narušení mutexu tím, že do mutexu vstoupí a neopouští ho. Pokud chcete omezit přístup na konkrétní uživatele, můžete při vytváření pojmenovaného MutexSecurity mutex předat . Vyhněte se používání pojmenovaných mutexů bez omezení přístupu v systémech, které můžou mít nedůvěryhodné uživatele s kódem.

Platí pro