ThreadPool.GetMinThreads(Int32, Int32) Método

Definição

Recupera o número mínimo de threads que o pool de threads cria a pedido, à medida que novos pedidos são feitos, antes de mudar para um algoritmo para gerir a criação e destruição de 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)

Parâmetros

workerThreads
Int32

Quando este método retorna, contém o número mínimo de threads worker que o pool de threads cria a pedido.

completionPortThreads
Int32

Quando este método retorna, contém o número mínimo de threads de E/S assíncronas que o pool de threads cria sob demanda.

Exemplos

O exemplo seguinte define o número mínimo de threads de trabalho para quatro e preserva o valor original para o número mínimo de threads de conclusão de E/S assíncronas.

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

Observações

O pool de threads fornece novos threads worker ou threads de conclusão de I/O sob demanda até atingir o mínimo para cada categoria. Por padrão, o número mínimo de threads é definido como o número de processadores em um sistema. Quando o mínimo é atingido, o pool de threads pode criar threads adicionais nessa categoria ou esperar que algumas tarefas sejam concluídas. A partir do .NET Framework 4, o pool de threads cria e destrói threads para otimizar o rendimento, que é definido como o número de tarefas que são concluídas por unidade de tempo. Poucos threads podem não fazer o uso ideal dos recursos disponíveis, enquanto muitos threads podem aumentar a contenção de recursos.

Note

Quando a procura é baixa, o número real de threads no pool pode ficar abaixo dos valores mínimos.

Aplica-se a

Ver também