Compartir a través de


Interfaz IThreadPoolConfig

Nota:

La biblioteca de plantillas activas (ATL) sigue siendo compatible. Sin embargo, ya no estamos agregando características ni actualizando la documentación.

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

Encabezado: 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.

Consulte también

Clases
CThreadPool (clase)