SemaphoreAcl.Create(Int32, Int32, String, Boolean, SemaphoreSecurity) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Hiermit wird eine Semaphore-Instanz abgerufen oder erstellt, sodass optional eine SemaphoreSecurity-Instanz angegeben werden kann, um eine Festlegung bei der Ereigniserstellung zu ermöglichen.
public:
static System::Threading::Semaphore ^ Create(int initialCount, int maximumCount, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::SemaphoreSecurity ^ semaphoreSecurity);
public static System.Threading.Semaphore Create (int initialCount, int maximumCount, string? name, out bool createdNew, System.Security.AccessControl.SemaphoreSecurity? semaphoreSecurity);
static member Create : int * int * string * bool * System.Security.AccessControl.SemaphoreSecurity -> System.Threading.Semaphore
Public Shared Function Create (initialCount As Integer, maximumCount As Integer, name As String, ByRef createdNew As Boolean, semaphoreSecurity As SemaphoreSecurity) As Semaphore
Parameter
- initialCount
- Int32
Die ursprüngliche Anzahl von Anforderungen für das Semaphor, die gleichzeitig ausgeführt werden können.
- maximumCount
- Int32
Die maximale Anzahl von Anforderungen für das Semaphor, die gleichzeitig ausgeführt werden können.
- name
- String
Der Name, wenn das Synchronisierungsobjekt für andere Prozesse freigegeben werden soll; andernfalls null oder eine leere Zeichenfolge. Bei dem Namen wird die Groß- und Kleinschreibung berücksichtigt.
- createdNew
- Boolean
Wenn diese Methode zurückgegeben wird, wird dieses Argument immer auf true festgelegt, wenn ein lokales Semaphor erstellt wird (d. h. wenn name entweder null oder dem Feld Empty entspricht). Wenn name über einen gültigen und nicht leeren Wert verfügt, wird dieses Argument auf true festgelegt, wenn das Systemsemaphor erstellt wird, oder es wird auf false festgelegt, wenn ein vorhandenes Systemsemaphor mit diesem Namen gefunden wird. Dieser Parameter wird nicht initialisiert übergeben.
- semaphoreSecurity
- SemaphoreSecurity
Dies ist die optional anzuwendende Zugriffssteuerungssicherheit für das Semaphor.
Gibt zurück
Dies ist ein Objekt, das bei einem angegebenen Namen ein Systemsemaphor und bei keinem angegebenen Namen ein lokales Semaphor darstellt.
Ausnahmen
initialCount ist eine negative Zahl.
- oder -
maximumCount ist keine positive Zahl.
initialCount ist größer als maximumCount.
- oder -
Nur .NET Framework: name ist länger als MAX_PATH (260 Zeichen).
name ist ungültig. Dies kann aus verschiedenen Gründen der Fall sein, z. B. durch Einschränkungen, die vom Betriebssystem auferlegt werden, etwa ein unbekanntes Präfix oder ungültige Zeichen. Beachten Sie, dass für den Namen und die allgemeinen Präfixe "Global" und "Local" Groß-/Kleinschreibung beachtet wird.
- oder -
Es gab einen anderen Fehler. DieHResult-Eigenschaft stellt möglicherweise weitere Informationen zur Verfügung.
Nur Windows: name hat einen unbekannten Namespace angegeben. Weitere Informationen finden Sie unter Objektnamen.
name ist zu lang. Längeneinschränkungen können vom Betriebssystem oder der Konfiguration abhängen.
Ein Synchronisierungsobjekt mit dem angegebenen name kann nicht erstellt werden. Ein Synchronisierungsobjekt eines anderen Typs weist ggf. denselben Namen auf.
Hinweise
Das name Präfix kann mit Global\ oder Local\ zum Angeben eines Namespaces angegeben werden. Wenn der Global Namespace angegeben wird, kann das Synchronisierungsobjekt für alle Prozesse im System freigegeben werden. Wenn der Namespace angegeben wird, was auch der Local Standardwert ist, wenn kein Namespace angegeben wird, kann das Synchronisierungsobjekt für Prozesse in derselben Sitzung freigegeben werden. Bei Windows ist eine Sitzung eine Anmeldesitzung, und Dienste werden in der Regel in einer anderen nicht interaktiven Sitzung ausgeführt. Auf Unix-ähnlichen Betriebssystemen verfügt jede Shell über eine eigene Sitzung. Sitzungs-lokale Synchronisierungsobjekte eignen sich möglicherweise für die Synchronisierung zwischen Prozessen mit einer übergeordneten/untergeordneten Beziehung, bei der alle in derselben Sitzung ausgeführt werden. Weitere Informationen zu Synchronisierungsobjektnamen für Windows finden Sie unter Objektnamen.
Wenn eine name bereitgestellt wird und ein Synchronisierungsobjekt des angeforderten Typs bereits im Namespace vorhanden ist, wird das vorhandene Synchronisierungsobjekt geöffnet. Wenn ein Synchronisierungsobjekt eines anderen Typs bereits im Namespace vorhanden ist, wird eine WaitHandleCannotBeOpenedException ausgelöst. Andernfalls wird ein neues Synchronisierungsobjekt erstellt.