SemaphoreAcl.Create(Int32, Int32, String, Boolean, SemaphoreSecurity) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
인스턴스를 Semaphore 가져오거나 만듭니다. 인스턴스를 SemaphoreSecurity 이벤트 생성 중에 인스턴스를 설정하도록 선택적으로 지정할 수 있습니다.
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
매개 변수
- initialCount
- Int32
동시에 충족할 수 있는 세마포에 대한 초기 요청 수입니다.
- maximumCount
- Int32
동시에 충족할 수 있는 세마포에 대한 최대 요청 수입니다.
- name
- String
동기화 개체를 다른 프로세스와 공유할 경우의 이름입니다. 그렇지 않으면 null 빈 문자열입니다. 이름은 대/소문자를 구분합니다. 백슬래시 문자(\)는 예약되어 있으며 네임스페이스를 지정하는 데만 사용할 수 있습니다. 네임스페이스에 대한 자세한 내용은 설명 섹션을 참조하세요. 운영 체제에 따라 이름에 대한 추가 제한 사항이 있을 수 있습니다. 예를 들어 Unix 기반 운영 체제에서 네임스페이스를 제외한 후의 이름은 유효한 파일 이름이어야 합니다.
- createdNew
- Boolean
이 메서드가 반환되면 이 인수는 항상 로컬 세마포가 만들어지는 경우, 즉, 시기 namenull 또는 Empty.로 설정 true 됩니다. 유효하고 비어있지 않은 값이 있는 경우 name 이 인수는 시스템 세마포를 만들 때로 설정 true 되거나 기존 시스템 세마포가 해당 이름으로 발견된 경우로 설정 false 됩니다. 이 매개 변수는 초기화되지 않은 상태로 전달됩니다.
- semaphoreSecurity
- SemaphoreSecurity
적용할 선택적 세마포 액세스 제어 보안입니다.
반품
이름 없는 경우 시스템 세마포 또는 로컬 세마포를 나타내는 개체입니다.
예외
initialCount이 maximumCount보다 큽니다.
-또는-
.NET Framework만 해당: name MAX_PATH(260자)보다 깁니다.
name 가 잘못되었습니다. 이는 알 수 없는 접두사 또는 잘못된 문자와 같이 운영 체제에서 적용할 수 있는 몇 가지 제한을 포함하여 다양한 이유로 발생할 수 있습니다. 이름 및 일반 접두사 "Global\" 및 "Local\"은 대/소문자를 구분합니다.
-또는-
다른 오류가 발생했습니다. 이 속성은 HResult 자세한 정보를 제공할 수 있습니다.
Windows 전용: name 알 수 없는 네임스페이스를 지정했습니다. 자세한 내용은 개체 이름을 참조하세요.
name이 너무 깁니다. 길이 제한은 운영 체제 또는 구성에 따라 달라질 수 있습니다.
제공된 name 동기화 개체를 만들 수 없습니다. 다른 형식의 동기화 개체의 이름은 같을 수 있습니다.
설명
name 네임스페이스를 접두사로 Global\ 지정하거나 Local\ 지정할 수 있습니다.
Global 네임스페이스를 지정하면 동기화 개체를 시스템의 모든 프로세스와 공유할 수 있습니다.
Local 네임스페이스가 지정되지 않은 경우에도 기본값인 네임스페이스를 지정하면 동기화 개체를 동일한 세션의 프로세스와 공유할 수 있습니다. Windows 세션은 로그인 세션이며 서비스는 일반적으로 다른 비대화형 세션에서 실행됩니다. Unix와 유사한 운영 체제에서 각 셸에는 자체 세션이 있습니다. 세션-로컬 동기화 개체는 모두 동일한 세션에서 실행되는 부모/자식 관계와 프로세스 간의 동기화에 적합할 수 있습니다. Windows 동기화 개체 이름에 대한 자세한 내용은 Object Names 참조하세요.
name 제공되고 요청된 형식의 동기화 개체가 네임스페이스에 이미 있는 경우 기존 동기화 개체가 열립니다. 다른 형식의 동기화 개체가 네임스페이스에 이미 있는 경우 throw WaitHandleCannotBeOpenedException 됩니다. 그렇지 않으면 새 동기화 개체가 만들어집니다.
Caution
기본적으로 명명된 세마포는 해당 세마포를 만든 사용자로 제한되지 않습니다. 다른 사용자는 세마포를 여러 번 획득하고 해제하지 않음으로써 세마포를 방해하는 것을 포함하여 세마포를 열고 사용할 수 있습니다. 특정 사용자에 대한 액세스를 제한하려면 명명된 세마포를 SemaphoreSecurity 만들 때 전달할 수 있습니다. 신뢰할 수 없는 사용자가 코드를 실행하는 시스템에 대한 액세스 제한 없이 명명된 세마포를 사용하지 마세요.