ThreadPool.SetMinThreads(Int32, Int32) ThreadPool.SetMinThreads(Int32, Int32) ThreadPool.SetMinThreads(Int32, Int32) ThreadPool.SetMinThreads(Int32, Int32) Method

Definizione

Imposta il numero minimo di thread che il pool di thread crea, man mano che vengono effettuate nuove richieste, prima di passare a un algoritmo per la gestione della creazione e dell'eliminazione del thread.Sets the minimum number of threads the thread pool creates on demand, as new requests are made, before switching to an algorithm for managing thread creation and destruction.

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

Parametri

workerThreads
Int32 Int32 Int32 Int32

Il numero minimo di thread di lavoro che vengono creati su richiesta dal pool di thread.The minimum number of worker threads that the thread pool creates on demand.

completionPortThreads
Int32 Int32 Int32 Int32

Il numero minimo di thread I/O asincroni che vengono creati su richiesta dal pool di thread.The minimum number of asynchronous I/O threads that the thread pool creates on demand.

Restituisce

true se la modifica ha esito positivo; in caso contrario, false.true if the change is successful; otherwise, false.

Esempi

Nell'esempio seguente viene impostato il numero minimo di thread di lavoro su quattro e viene mantenuto il valore originale per il numero minimo di thread di completamento di I/O asincroni.The following example sets the minimum number of worker threads to four, and preserves the original value for the minimum number of asynchronous I/O completion threads.

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

Commenti

Il pool di thread fornisce nuovi thread di lavoro o thread di completamento di I/O su richiesta fino a raggiungere il valore minimo per ogni categoria.The thread pool provides new worker threads or I/O completion threads on demand until it reaches the minimum for each category. Quando viene raggiunto il valore minimo, il pool di thread può creare thread aggiuntivi in tale categoria o attendere il completamento di alcune attività.When the minimum is reached, the thread pool can create additional threads in that category or wait until some tasks complete. A partire da .NET Framework 4.NET Framework 4, il pool di thread crea ed Elimina i thread per ottimizzare la velocità effettiva, definita come il numero di attività completate per unità di tempo.Beginning with the .NET Framework 4.NET Framework 4, the thread pool creates and destroys threads in order to optimize throughput, which is defined as the number of tasks that complete per unit of time. Un numero troppo ridotto di thread potrebbe non usare in modo ottimale le risorse disponibili, mentre troppi thread potrebbero aumentare il conflitto per le risorse.Too few threads might not make optimal use of available resources, whereas too many threads could increase resource contention.

Quando la richiesta è bassa, il numero effettivo di thread del pool può scendere sotto i valori minimi.When demand is low, the actual number of thread pool threads can fall below the minimum values.

Se si specifica un numero negativo o un numero maggiore del numero massimo di thread del pool di thread attivi (ottenuti utilizzando GetMaxThreads), SetMinThreads restituisce false e non modifica i valori minimi.If you specify a negative number or a number larger than the maximum number of active thread pool threads (obtained using GetMaxThreads), SetMinThreads returns false and does not change either of the minimum values.

Attenzione

Per impostazione predefinita, il numero minimo di thread è impostato sul numero di processori in un sistema.By default, the minimum number of threads is set to the number of processors on a system. Per aumentare il numero minimo di thread, è possibile usare il metodo SetMinThreads.You can use the SetMinThreads method to increase the minimum number of threads. Tuttavia, un aumento non necessario di questi valori può provocare problemi di prestazioni.However, unnecessarily increasing these values can cause performance problems. Se si avviano troppe attività contemporaneamente, potrebbero sembrare tutte lente.If too many tasks start at the same time, all of them might appear to be slow. Nella maggior parte dei casi, il pool di thread offrirà prestazioni migliori con il proprio algoritmo per l'allocazione dei thread.In most cases, the thread pool will perform better with its own algorithm for allocating threads. Anche la riduzione del numero minimo di processori può compromettere le prestazioni.Reducing the minimum to less than the number of processors can also hurt performance.

Sicurezza

SecurityPermission
per la possibilità di controllare i thread.for the ability to control threads. Valore di autorizzazione: ControlThreadPermission value: ControlThread

Si applica a

Vedi anche