Freigeben über


ThreadPool.SetMaxThreads(Int32, Int32) Methode

Definition

Legt die Anzahl der Anforderungen für den Threadpool fest, die gleichzeitig aktiv sein können. Alle über diese Zahl hinausgehenden Anforderungen bleiben in der Warteschlange, bis die Threads des Threadpools 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 der Arbeitsthreads im Threadpool.

completionPortThreads
Int32

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

Gibt zurück

true, wenn 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 des Windows-Threadpools.

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

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. Ihr Code kann zwar von Vorteil sein, aber die Änderungen können sich negativ auf die von Ihnen verwendeten Codebibliotheken auswirken.

Wenn Sie die Größe des Threadpools zu groß festlegen, kann dies zu Leistungsproblemen führen. Wenn zu viele Threads gleichzeitig ausgeführt werden, wird der Aufgabenwechselaufwand zu einem wichtigen Faktor.

Hinweis

Der Threadpool kann Obergrenzen für die maximale Threadanzahl aufweisen (z short.MaxValue. B. , abhängig von der Implementierung). Die Argumentwerte sind auf die Obergrenze begrenzt. Selbst wenn die Methode zurückgibt true, können die tatsächlichen maximalen Threadanzahlen niedriger als angefordert sein.

Gilt für:

Weitere Informationen