IThreadPoolConfig 인터페이스
이 인터페이스는 스레드 풀을 구성하기 위한 메서드를 제공합니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
__interface
__declspec(uuid("B1F64757-6E88-4fa2-8886-7848B0D7E660")) IThreadPoolConfig : public IUnknown
멤버
메서드
속성 | 설명 |
---|---|
GetSize | 이 메서드를 호출하여 풀의 스레드 수를 가져옵니다. |
GetTimeout | 스레드 풀이 스레드가 종료될 때까지 대기하는 최대 시간(밀리초)을 얻으려면 이 메서드를 호출합니다. |
SetSize | 이 메서드를 호출하여 풀의 스레드 수를 설정합니다. |
SetTimeout | 스레드 풀이 스레드가 종료될 때까지 대기하는 최대 시간(밀리초)을 설정하려면 이 메서드를 호출합니다. |
설명
이 인터페이스는 CThreadPool에서 구현됩니다.
요구 사항
헤더: atlutil.h
IThreadPoolConfig::GetSize
이 메서드를 호출하여 풀의 스레드 수를 가져옵니다.
STDMETHOD(GetSize)(int* pnNumThreads);
매개 변수
pnNumThreads
[out] 성공 시 풀의 스레드 수를 수신하는 변수의 주소입니다.
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
예시
HRESULT DoPoolOperations(IThreadPoolConfig* pPool, int nSize)
{
int nCurrSize = 0;
HRESULT hr = pPool->GetSize(&nCurrSize);
if (SUCCEEDED(hr))
{
printf_s("Current pool size: %d\n", nCurrSize);
hr = pPool->SetSize(nSize);
if (SUCCEEDED(hr))
{
printf_s("New pool size : %d\n", nSize);
DWORD dwTimeout = 0;
hr = pPool->GetTimeout(&dwTimeout);
if (SUCCEEDED(hr))
{
printf_s("Current pool timeout: %u\n", dwTimeout);
// Increase timeout by 10 seconds.
dwTimeout += 10 * 1000;
hr = pPool->SetTimeout(dwTimeout);
if (SUCCEEDED(hr))
{
printf_s("New pool timeout: %u\n", dwTimeout);
}
else
{
printf_s("Failed to set pool timeout: 0x%08X\n", hr);
}
}
else
{
printf_s("Failed to get pool timeout: 0x%08X\n", hr);
}
}
else
{
printf_s("Failed to resize pool: 0x%08X\n", hr);
}
}
else
{
printf_s("Failed to get pool size: 0x%08x\n", hr);
}
return hr;
}
IThreadPoolConfig::GetTimeout
스레드 풀이 스레드가 종료될 때까지 대기하는 최대 시간(밀리초)을 얻으려면 이 메서드를 호출합니다.
STDMETHOD(GetTimeout)(DWORD* pdwMaxWait);
매개 변수
pdwMaxWait
[out] 성공 시 스레드 풀이 스레드가 종료될 때까지 대기하는 최대 시간(밀리초)을 수신하는 변수의 주소입니다.
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
예시
IThreadPoolConfig::GetSize를 참조하세요.
IThreadPoolConfig::SetSize
이 메서드를 호출하여 풀의 스레드 수를 설정합니다.
STDMETHOD(SetSize)int nNumThreads);
매개 변수
nNumThreads
풀에서 요청된 스레드 수입니다.
nNumThreads가 음수이면 절대값에 컴퓨터의 프로세서 수를 곱하여 총 스레드 수를 가져옵니다.
nNumThreads가 0이면 ATLS_DEFAULT_THREADSPERPROC 컴퓨터의 프로세서 수를 곱하여 총 스레드 수를 가져옵니다.
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
예시
IThreadPoolConfig::GetSize를 참조하세요.
IThreadPoolConfig::SetTimeout
스레드 풀이 스레드가 종료될 때까지 대기하는 최대 시간(밀리초)을 설정하려면 이 메서드를 호출합니다.
STDMETHOD(SetTimeout)(DWORD dwMaxWait);
매개 변수
dwMaxWait
스레드 풀이 스레드가 종료될 때까지 대기하는 요청된 최대 시간(밀리초)입니다.
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
예시
IThreadPoolConfig::GetSize를 참조하세요.