Freigeben über


ThreadPool.SetMaxThreads(Int32, Int32) Methode

Definition

Legt die Anzahl der Anforderungen an den Threadpool fest, die gleichzeitig aktiv sein können. Alle Anforderungen oberhalb dieser Zahl bleiben in der Warteschlange, bis Threadpoolthreads verfügbar sind.

public:
 static bool SetMaxThreads(int workerThreads, int completionPortThreads);
public static bool SetMaxThreads(int workerThreads, int completionPortThreads);
static member SetMaxThreads : int * int -> bool
Public Shared Function SetMaxThreads (workerThreads As Integer, completionPortThreads As Integer) As Boolean

Parameter

workerThreads
Int32

Die maximale Anzahl von Arbeitsthreads im Threadpool.

completionPortThreads
Int32

Die maximale Anzahl asynchroner E/A-Threads im Threadpool.

Gibt zurück

truewenn die Änderung erfolgreich ist; andernfalls . false

Hinweise

Diese Methode wird nicht unterstützt, wenn der Windows-Threadpool für die Verwendung anstelle des .NET-Threadpools konfiguriert ist. Weitere Informationen finden Sie in der Konfigurationseinstellung für den Windows-Threadpool.

Sie können die maximale Anzahl von Arbeitsthreads oder E/A-Abschlussthreads nicht auf eine Zahl festlegen, die kleiner als die Anzahl der Prozessoren auf dem Computer ist. Um zu ermitteln, wie viele Prozessoren vorhanden sind, rufen Sie den Wert der Environment.ProcessorCount Eigenschaft ab. Darüber hinaus können Sie die maximale Anzahl von Arbeitsthreads oder E/A-Vervollständigungsthreads nicht auf eine Zahl festlegen, die kleiner als die entsprechende Mindestanzahl von Arbeitsthreads oder E/A-Abschlussthreads ist. Rufen Sie die GetMinThreads Methode auf, um die minimale Threadpoolgröße zu ermitteln.

Wenn die Common Language Runtime gehostet wird, z. B. durch Internetinformationsdienste (IIS) oder SQL Server, kann der Host Änderungen an der Threadpoolgröße einschränken oder verhindern.

Gehen Sie vorsichtig vor, wenn Sie die maximale Anzahl von Threads im Threadpool ändern. Der Code kann zwar von Vorteil sein, die Änderungen wirken sich jedoch negativ auf codebibliotheken aus, die Sie verwenden.

Das Festlegen der Threadpoolgröße zu groß kann zu Leistungsproblemen führen. Wenn zu viele Threads gleichzeitig ausgeführt werden, wird der Vorgangswechselaufwand zu einem erheblichen Faktor.

Hinweis

Der Threadpool verfügt möglicherweise über obere Grenzwerte für die maximale Threadanzahl (z short.MaxValue. B. abhängig von der Implementierung). Die Argumentwerte werden auf die obere Grenze begrenzt. Auch wenn die Methode zurückgibt true, kann die tatsächliche maximale Threadanzahl niedriger sein als angefordert.

Gilt für:

Weitere Informationen