Partager via


CThreadPool::SetSize

Appelez cette méthode pour définir le nombre de threads dans le pool.

HRESULT STDMETHODCALLTYPE SetSize(
   int nNumThreads 
) throw( );

Paramètres

  • nNumThreads
    Le nombre demandé de threads dans le pool.

    Si nNumThreads est négatif, sa valeur absolue est multipliée par le nombre de processeurs de l'ordinateur pour obtenir l'intégralité du nombre de threads.

    Si nNumThreads est zéro, ATLS_DEFAULT_THREADSPERPROC sera multiplié par le nombre de processeurs de l'ordinateur pour obtenir l'intégralité du nombre de threads.

Valeur de retour

Retourne S_OK en cas de réussite, ou une erreur HRESULT en cas de échec.

Notes

Si le nombre de threads spécifiés est inférieur au nombre de threads en cours dans le pool, l'objet met un message d'arrêt sur la file d'attente à prendre par un thread en attente.Lorsqu'un thread en attente supprime le message de la file d'attente, elle signale le pool de threads et quitte la procédure de thread.Ce processus se répète jusqu'à ce que le nombre de threads dans le pool atteigne le nombre spécifié ou jusqu'à ce qu'aucun thread n'a quitté au cours de la période spécifiée par GetTimeout/SetTimeout.Dans ce cas la méthode retourne un HRESULT correspondant à WAIT_TIMEOUT et le message en attente d'arrêt est annulé.

Configuration requise

Header: atlutil.h

Voir aussi

Référence

CThreadPool de classe

IThreadPoolConfig::SetSize

CThreadPool::GetSize