CComMultiThreadModelNoCS 클래스
CComMultiThreadModelNoCS
는 중요한 섹션 잠금 또는 잠금 해제 기능 없이 변수 값을 증가 및 감소시키는 스레드로부터 안전한 메서드를 제공합니다.
구문
class CComMultiThreadModelNoCS
멤버
공용 Typedefs
속성 | 설명 |
---|---|
CComMultiThreadModelNoCS::AutoCriticalSection | CComFakeCriticalSection 클래스를 참조합니다. |
CComMultiThreadModelNoCS::CriticalSection | 참조 클래스 CComFakeCriticalSection . |
CComMultiThreadModelNoCS::ThreadModelNoCS | 참조 클래스 CComMultiThreadModelNoCS . |
공용 메서드
이름 | 설명 |
---|---|
CComMultiThreadModelNoCS::D ecrement | (정적) 스레드로부터 안전한 방식으로 지정된 변수의 값을 줄입니다. |
CComMultiThreadModelNoCS::Increment | (정적) 스레드로부터 안전한 방식으로 지정된 변수의 값을 증분합니다. |
설명
CComMultiThreadModelNoCS
은 CComMultiThreadModel과 유사합니다. 이 메서드는 변수를 증가시키고 감소시키는 스레드로부터 안전한 메서드를 제공한다는 점입니다. 그러나 중요한 섹션 클래스를 참조 CComMultiThreadModelNoCS
할 때 메서드는 Lock
아무 작업도 Unlock
수행하지 않습니다.
일반적으로 이름을 통해 ThreadModelNoCS
typedef
사용합니다CComMultiThreadModelNoCS
. 이는 typedef
, CComMultiThreadModel
및 CComSingleThreadModel에서 CComMultiThreadModelNoCS
정의됩니다.
참고 항목
전역 typedef
이름 CComObjectThreadModel 및 CComGlobalsThreadModel 은 참조 CComMultiThreadModelNoCS
하지 않습니다.
외에도 ThreadModelNoCS
, defines 및 AutoCriticalSection
CriticalSection
. CComMultiThreadModelNoCS
이러한 후자의 두 typedef
이름은 CComFakeCriticalSection을 참조하며, 중요한 섹션을 가져오고 해제하는 것과 관련된 빈 메서드를 제공합니다.
요구 사항
헤더: atlbase.h
CComMultiThreadModelNoCS::AutoCriticalSection
사용할 CComMultiThreadModelNoCS
typedef
때 이름은 AutoCriticalSection
CComFakeCriticalSection 클래스를 참조합니다.
typedef CComFakeCriticalSection AutoCriticalSection;
설명
CComFakeCriticalSection
중요한 섹션을 제공하지 않으므로 해당 메서드는 아무 작업도 수행하지 않습니다.
CComMultiThreadModel 및 CComSingleThreadModel 에는 에 대한 AutoCriticalSection
정의도 포함되어 있습니다. 다음 표에서는 스레딩 모델 클래스와 참조 AutoCriticalSection
하는 중요 섹션 클래스 간의 관계를 보여 줍니다.
에 정의된 클래스 | 참조된 클래스 |
---|---|
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
CComMultiThreadModel |
CComAutoCriticalSection |
CComSingleThreadModel |
CComFakeCriticalSection |
또한 AutoCriticalSection
CriticalSection이라는 이름을 사용할 typedef
수 있습니다. CRT 시작 코드를 제거하려는 경우 전역 개체 또는 정적 클래스 멤버를 지정 AutoCriticalSection
해서는 안 됩니다.
예시
CComMultiThreadModel::AutoCriticalSection을 참조하세요.
CComMultiThreadModelNoCS::CriticalSection
사용할 CComMultiThreadModelNoCS
typedef
때 이름은 CriticalSection
CComFakeCriticalSection 클래스를 참조합니다.
typedef CComFakeCriticalSection CriticalSection;
설명
CComFakeCriticalSection
중요한 섹션을 제공하지 않으므로 해당 메서드는 아무 작업도 수행하지 않습니다.
CComMultiThreadModel 및 CComSingleThreadModel 에는 에 대한 CriticalSection
정의도 포함되어 있습니다. 다음 표에서는 스레딩 모델 클래스와 참조 CriticalSection
하는 중요 섹션 클래스 간의 관계를 보여 줍니다.
에 정의된 클래스 | 참조된 클래스 |
---|---|
CComMultiThreadModelNoCS |
CComFakeCriticalSection |
CComMultiThreadModel |
CComCriticalSection |
CComSingleThreadModel |
CComFakeCriticalSection |
또한 CriticalSection
이름을 AutoCriticalSection
사용할 typedef
수 있습니다. CRT 시작 코드를 제거하려는 경우 전역 개체 또는 정적 클래스 멤버를 지정 AutoCriticalSection
해서는 안 됩니다.
예시
CComMultiThreadModel::AutoCriticalSection을 참조하세요.
CComMultiThreadModelNoCS::D ecrement
이 정적 함수는 P가 가리키는 변수의 값을 감소시키는 Win32 함수 InterlockedDecrement를 호출합니다.
static ULONG WINAPI Decrement(LPLONG p) throw();
매개 변수
p
[in] 감소할 변수에 대한 포인터입니다.
Return Value
감소 결과가 0이면 0 Decrement
을 반환합니다. 감소 결과가 0이 아닌 경우 반환 값도 0이 아니지만 감소의 결과와 같지 않을 수 있습니다.
설명
InterlockedDecrement 는 둘 이상의 스레드가 동시에 이 변수를 사용하지 못하도록 방지합니다.
CComMultiThreadModelNoCS::Increment
이 정적 함수는 P가 가리키는 변수의 값을 증가시키는 Win32 함수 InterlockedIncrement를 호출합니다.
static ULONG WINAPI Increment(LPLONG p) throw();
매개 변수
p
[in] 증분할 변수에 대한 포인터입니다.
Return Value
증분 결과가 0 이면 증분 은 0을 반환합니다. 증분 결과가 0이 아닌 경우 반환 값도 0이 아니지만 증분 결과와 같지 않을 수 있습니다.
설명
InterlockedIncrement 는 둘 이상의 스레드가 동시에 이 변수를 사용하지 못하도록 방지합니다.
CComMultiThreadModelNoCS::ThreadModelNoCS
사용할 CComMultiThreadModelNoCS
때 이름은 typedef
ThreadModelNoCS
단순히 참조합니다.CComMultiThreadModelNoCS
typedef CComMultiThreadModelNoCS ThreadModelNoCS;
설명
CComMultiThreadModel 및 CComSingleThreadModel 에는 에 대한 ThreadModelNoCS
정의도 포함되어 있습니다. 다음 표에서는 스레딩 모델 클래스와 참조되는 ThreadModelNoCS
클래스 간의 관계를 보여 줍니다.
에 정의된 클래스 | 참조된 클래스 |
---|---|
CComMultiThreadModelNoCS |
CComMultiThreadModelNoCS |
CComMultiThreadModel |
CComMultiThreadModelNoCS |
CComSingleThreadModel |
CComSingleThreadModel |
in CComMultiThreadModelNoCS
의 ThreadModelNoCS
정의는 대칭 및 CComMultiThreadModel
CComSingleThreadModel
을 제공합니다. 예를 들어 샘플 코드가 CComMultiThreadModel::AutoCriticalSection
다음과 typedef
같이 선언되었다고 가정합니다.
typedef typename ThreadModel::ThreadModelNoCS _ThreadModel;
지정된 클래스(예: CComMultiThreadModelNoCS
) _ThreadModel
에 ThreadModel
관계없이 그에 따라 확인됩니다.
예시
CComMultiThreadModel::AutoCriticalSection을 참조하세요.