ThreadPool.SetMaxThreads(Int32, Int32) Méthode

Définition

Définit le nombre de demandes au pool de threads pouvant être simultanément actives. Toutes les demandes excédant ce nombre restent dans la file d'attente jusqu'à ce que des threads du pool soient disponibles.

public static bool SetMaxThreads (int workerThreads, int completionPortThreads);

Paramètres

workerThreads
Int32

Nombre maximal de threads de travail dans le pool de threads.

completionPortThreads
Int32

Nombre maximal de threads d'E/S asynchrones dans le pool de threads.

Retours

true si la modification aboutit ; sinon, false.

Remarques

Cette méthode n’est pas prise en charge lorsque le pool de threads Windows est configuré pour être utilisé à la place du pool de threads .NET. Pour plus d’informations, consultez le paramètre de configuration du pool de threads Windows.

Vous ne pouvez pas définir le nombre maximal de threads de travail ou de threads d’achèvement d’E/S sur un nombre inférieur au nombre de processeurs sur l’ordinateur. Pour déterminer le nombre de processeurs présents, récupérez la valeur de la Environment.ProcessorCount propriété . En outre, vous ne pouvez pas définir le nombre maximal de threads de travail ou de threads d’achèvement d’E/S sur un nombre inférieur au nombre minimal correspondant de threads de travail ou de threads d’achèvement d’E/S. Pour déterminer la taille minimale du pool de threads, appelez la GetMinThreads méthode .

Si le Common Language Runtime est hébergé, par exemple par Internet Information Services (IIS) ou SQL Server, l’hôte peut limiter ou empêcher les modifications de la taille du pool de threads.

Soyez prudent lorsque vous modifiez le nombre maximal de threads dans le pool de threads. Bien que votre code puisse en bénéficier, les modifications peuvent avoir un effet négatif sur les bibliothèques de code que vous utilisez.

La définition d’une taille de pool de threads trop importante peut entraîner des problèmes de performances. Si trop de threads s’exécutent en même temps, la surcharge de basculement de tâche devient un facteur important.

Notes

Le pool de threads peut avoir des limites supérieures pour le nombre maximal de threads (par short.MaxValueexemple, , en fonction de l’implémentation). Les valeurs d’argument étant limitées à la limite supérieure, même lorsque la méthode retourne true, le nombre maximal réel de threads peut être inférieur à celui demandé.

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Voir aussi