ThreadPool.GetMinThreads(Int32, Int32) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Récupère le nombre minimal de threads que le pool de threads crée à la demande, au fur et à mesure que de nouvelles requêtes sont effectuées, avant de basculer sur un algorithme pour la gestion de la création et de la suppression des threads.
public:
static void GetMinThreads([Runtime::InteropServices::Out] int % workerThreads, [Runtime::InteropServices::Out] int % completionPortThreads);
public static void GetMinThreads (out int workerThreads, out int completionPortThreads);
static member GetMinThreads : int * int -> unit
Public Shared Sub GetMinThreads (ByRef workerThreads As Integer, ByRef completionPortThreads As Integer)
Paramètres
- workerThreads
- Int32
Lorsque cette méthode est retournée, contient le nombre minimal de threads de travail que le pool de threads crée à la demande.
- completionPortThreads
- Int32
Lorsque cette méthode est retournée, contient le nombre minimal de threads d'E/S asynchrones que le pool de threads crée à la demande.
Exemples
L’exemple suivant définit le nombre minimal de threads de travail sur quatre et conserve la valeur d’origine pour le nombre minimal de threads d’achèvement d’E/S asynchrones.
using namespace System;
using namespace System::Threading;
int main()
{
int minWorker;
int minIOC;
// Get the current settings.
ThreadPool::GetMinThreads( minWorker, minIOC );
// Change the minimum number of worker threads to four, but
// keep the old setting for minimum asynchronous I/O
// completion threads.
if ( ThreadPool::SetMinThreads( 4, minIOC ) )
{
// The minimum number of threads was set successfully.
}
else
{
// The minimum number of threads was not changed.
}
}
using System;
using System.Threading;
public class Test
{
public static void Main()
{
int minWorker, minIOC;
// Get the current settings.
ThreadPool.GetMinThreads(out minWorker, out minIOC);
// Change the minimum number of worker threads to four, but
// keep the old setting for minimum asynchronous I/O
// completion threads.
if (ThreadPool.SetMinThreads(4, minIOC))
{
// The minimum number of threads was set successfully.
}
else
{
// The minimum number of threads was not changed.
}
}
}
Imports System.Threading
Public Class Test
<MTAThread> _
Public Shared Sub Main()
Dim minWorker, minIOC As Integer
' Get the current settings.
ThreadPool.GetMinThreads(minWorker, minIOC)
' Change the minimum number of worker threads to four, but
' keep the old setting for minimum asynchronous I/O
' completion threads.
If ThreadPool.SetMinThreads(4, minIOC) Then
' The minimum number of threads was set successfully.
Else
' The minimum number of threads was not changed.
End If
End Sub
End Class
Remarques
Le pool de threads fournit de nouveaux threads de travail ou des threads d’achèvement d’E/S à la demande jusqu’à ce qu’il atteigne le minimum pour chaque catégorie. Par défaut, le nombre minimal de threads est défini sur le nombre de processeurs d’un système. Lorsque le minimum est atteint, le pool de threads peut créer des threads supplémentaires dans cette catégorie ou attendre que certaines tâches se terminent. À compter du .NET Framework 4, le pool de threads crée et détruit des threads afin d’optimiser le débit, qui est défini comme le nombre de tâches qui s’exécutent par unité de temps. Un nombre trop bas de threads peut ne pas permettre une utilisation optimale des ressources disponibles, tandis qu'un nombre trop élevé de threads peut augmenter les conflits de ressources.
Notes
Quand la demande est faible, le nombre réel de threads du pool peut être inférieur aux valeurs minimales.