Compartir a través de


Interfaz IThreadPoolConfig

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.

Consulte también

Clases
CThreadPool (clase)