Freigeben über


CThreadPool::SetSize

Rufen Sie diese Methode auf, um die Anzahl der Threads im Pool festzulegen.

HRESULT STDMETHODCALLTYPE SetSize( 
   int nNumThreads  
) throw( );

Parameter

  • nNumThreads
    Die angeforderte Anzahl von Threads im Pool.

    Wenn nNumThreads negativ ist, wird dessen absoluter Wert von der Anzahl von Prozessoren im Computer multipliziert, um die Gesamtanzahl von Threads abzurufen.

    Wenn nNumThreads null ist, wird ATLS_DEFAULT_THREADSPERPROC von der Anzahl von Prozessoren im Computer multipliziert, um die Gesamtanzahl von Threads abzurufen.

Rückgabewert

EINGABETASTE S_OK bei Erfolg oder Fehler HRESULT auf Fehler.

Hinweise

Wenn die Anzahl der angegebenen Threads kleiner als die Anzahl der Threads derzeit im Pool ist, wird das Objekt eine Nachricht über das Herunterfahren auf die durch einen wartenden Thread aufgehoben werden Warteschlange. Wenn ein wartender Thread die Meldung aus der Warteschlange abzieht, benachrichtigt der Threadpool und beendet die Threadprozedur. Dieser Prozess wird wiederholt, bis die Anzahl der Threads im Pool die angegebene Anzahl erreicht, oder bis kein Thread innerhalb des vorgesehener Zeitraum von GetTimeout/SetTimeout beendet wurde. In diesem Fall gibt die Methode ein HRESULT entsprechend WAIT_TIMEOUT zurück und die anstehende Nachricht über das Herunterfahren abgebrochen wird.

Anforderungen

Header: atlutil.h

Siehe auch

Referenz

CThreadPool Class

IThreadPoolConfig::SetSize

CThreadPool::GetSize