Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze interface biedt methoden voor het configureren van een threadpool.
Belangrijk
Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.
Syntaxis
__interface
__declspec(uuid("B1F64757-6E88-4fa2-8886-7848B0D7E660")) IThreadPoolConfig : public IUnknown
Leden
Methods
| Naam | Description |
|---|---|
| GetSize | Roep deze methode aan om het aantal threads in de pool op te halen. |
| GetTimeout | Roep deze methode aan om de maximale tijd in milliseconden te krijgen die de threadgroep wacht totdat een thread is afgesloten. |
| SetSize | Roep deze methode aan om het aantal threads in de pool in te stellen. |
| SetTimeout | Roep deze methode aan om de maximale tijd in milliseconden in te stellen die de threadgroep wacht tot een thread is afgesloten. |
Opmerkingen
Deze interface wordt geïmplementeerd door CThreadPool.
Requirements
Header: atlutil.h
IThreadPoolConfig::GetSize
Roep deze methode aan om het aantal threads in de pool op te halen.
STDMETHOD(GetSize)(int* pnNumThreads);
Parameterwaarden
pnNumThreads
[uit] Adres van de variabele die bij succes het aantal threads in de pool ontvangt.
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Example
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
Roep deze methode aan om de maximale tijd in milliseconden te krijgen die de threadgroep wacht totdat een thread is afgesloten.
STDMETHOD(GetTimeout)(DWORD* pdwMaxWait);
Parameterwaarden
pdwMaxWait
[uit] Adres van de variabele die, bij succes, de maximale tijd ontvangt in milliseconden dat de threadgroep wacht tot een thread is afgesloten.
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Example
Zie IThreadPoolConfig::GetSize.
IThreadPoolConfig::SetSize
Roep deze methode aan om het aantal threads in de pool in te stellen.
STDMETHOD(SetSize)int nNumThreads);
Parameterwaarden
nNumThreads
Het aangevraagde aantal threads in de pool.
Als nNumThreads negatief is, wordt de absolute waarde vermenigvuldigd met het aantal processors in de machine om het totale aantal threads op te halen.
Als nNumThreads nul is, wordt ATLS_DEFAULT_THREADSPERPROC vermenigvuldigd met het aantal processors op de computer om het totale aantal threads op te halen.
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Example
Zie IThreadPoolConfig::GetSize.
IThreadPoolConfig::SetTimeout
Roep deze methode aan om de maximale tijd in milliseconden in te stellen die de threadgroep wacht tot een thread is afgesloten.
STDMETHOD(SetTimeout)(DWORD dwMaxWait);
Parameterwaarden
dwMaxWait
De aangevraagde maximale tijd in milliseconden dat de threadpool wacht tot een thread is afgesloten.
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Example
Zie IThreadPoolConfig::GetSize.