Поделиться через


CThreadPool::SetSize

Вызывайте этот метод для задания количества потоков в пуле.

HRESULT STDMETHODCALLTYPE SetSize( 
   int nNumThreads  
) throw( );

Параметры

  • nNumThreads
    Запрошенное число потоков в пуле.

    Если nNumThreads отрицательное, то его абсолютное значение будет умножена на число процессоров в компьютере, чтобы получить общее количество потоков.

    Если nNumThreads нулю, то будет ATLS_DEFAULT_THREADSPERPROC умножается на число процессоров в компьютере, чтобы получить общее количество потоков.

Возвращаемое значение

Возвращает значение S_ОК на успешное завершение или ошибка HRESULT в случае сбоя.

Заметки

Если количество указанных потоков, чем количество потоков в данный момент в кластере, то объект помещает его в очередь завершения работы, которые требуются ожидающий поток. Когда поток находится в состоянии ожидания запроса сообщение с очереди уведомляет пул потоков и оставляет процедуры потока. Повторите этот процесс до тех пор, пока количество потоков в пуле не достигнет заданного числа или до тех пор, пока поток не будет оставлять в течение периода, заданного GetTimeout/SetTimeout. В этой ситуации метод возвратит значение HRESULT, соответствующее WAIT_TIMEOUT и ожидающее завершения работы сообщение отменено.

Требования

Header: atlutil.h

См. также

Ссылки

CThreadPool Class

IThreadPoolConfig::SetSize

CThreadPool::GetSize