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
이 메서드가 반환될 때 로컬 세마포가 만들어진 경우, 다시 말해서 name
이 null
또는 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의 동기화 개체 이름에 대한 자세한 내용은 개체 이름을 참조하세요.
가 name
제공되고 요청된 형식의 동기화 개체가 네임스페이스에 이미 있는 경우 기존 동기화 개체가 열립니다. 다른 형식의 동기화 개체가 네임스페이스에 WaitHandleCannotBeOpenedException
이미 있는 경우 이 throw됩니다. 그렇지 않으면 새 동기화 개체가 만들어집니다.
주의
기본적으로 명명된 세마포는 해당 세마포를 만든 사용자로 제한되지 않습니다. 다른 사용자는 세마포를 여러 번 획득하고 해제하지 않음으로써 세마포를 방해하는 것을 포함하여 세마포를 열고 사용할 수 있습니다. 특정 사용자에 대한 액세스를 제한하려면 명명된 세마포를 SemaphoreSecurity 만들 때 를 전달할 수 있습니다. 신뢰할 수 없는 사용자가 코드를 실행 중일 수 있는 시스템에 대한 액세스 제한 없이 명명된 세마포를 사용하지 마세요.
적용 대상
.NET