Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
Esta interfaz proporciona métodos para configurar un grupo de subprocesos.
Importante
Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.
Sintaxis
__interface
__declspec(uuid("B1F64757-6E88-4fa2-8886-7848B0D7E660")) IThreadPoolConfig : public IUnknown
Miembros
Métodos
| Nombre | Descripción |
|---|---|
| GetSize | Llame a este método para obtener el número de subprocesos del grupo. |
| GetTimeout | Llame a este método para conseguir el tiempo máximo en milisegundos que el grupo de subprocesos esperará para que se apague un subproceso. |
| SetSize | Llame a este método para establecer el número de subprocesos del grupo. |
| SetTimeout | Llame a este método para establecer el tiempo máximo en milisegundos que el grupo de subprocesos esperará para que se apague un subproceso. |
Comentarios
Esta interfaz se implementa a través de CThreadPool.
Requisitos
Header: atlutil.h
IThreadPoolConfig::GetSize
Llame a este método para obtener el número de subprocesos del grupo.
STDMETHOD(GetSize)(int* pnNumThreads);
Parámetros
pnNumThreads
[out] Dirección de la variable que, si se ejecuta correctamente, recibe el número de subprocesos del grupo.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Ejemplo
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
Llame a este método para conseguir el tiempo máximo en milisegundos que el grupo de subprocesos esperará para que se apague un subproceso.
STDMETHOD(GetTimeout)(DWORD* pdwMaxWait);
Parámetros
pdwMaxWait
[out] Dirección de la variable que, si se ejecuta correctamente, recibe el tiempo máximo en milisegundos que el grupo de subprocesos esperará para que se apague un subproceso.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Ejemplo
Consulte IThreadPoolConfig::GetSize.
IThreadPoolConfig::SetSize
Llame a este método para establecer el número de subprocesos del grupo.
STDMETHOD(SetSize)int nNumThreads);
Parámetros
nNumThreads
El número solicitado por el grupo de subprocesos.
Si nNumThreads es negativo, su valor absoluto se multiplicará por el número de procesadores de la máquina y así obtener el número total de subprocesos.
Si nNumThreads es cero, ATLS_DEFAULT_THREADSPERPROC se multiplicará por el número de procesadores de la máquina y así obtener el número total de subprocesos.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Ejemplo
Consulte IThreadPoolConfig::GetSize.
IThreadPoolConfig::SetTimeout
Llame a este método para establecer el tiempo máximo en milisegundos que el grupo de subprocesos esperará para que se apague un subproceso.
STDMETHOD(SetTimeout)(DWORD dwMaxWait);
Parámetros
dwMaxWait
El tiempo máximo solicitado en milisegundos que el grupo de subprocesos esperará para que se apague un subproceso.
Valor devuelto
Devuelve S_OK si es correcto o un error HRESULT en caso de error.
Ejemplo
Consulte IThreadPoolConfig::GetSize.