ThreadPool.GetMinThreads(Int32, Int32) Метод

Определение

Извлекает минимальное количество потоков, которые пул потоков создает по запросу, так как создаются новые запросы, прежде чем переключаться на алгоритм для управления созданием и уничтожением потоков.

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)

Параметры

workerThreads
Int32

При возврате этого метода содержит минимальное количество рабочих потоков, создаваемых пулом потоков по запросу.

completionPortThreads
Int32

При возврате этого метода содержит минимальное количество асинхронных потоков ввода-вывода, создаваемых пулом потоков по требованию.

Примеры

В следующем примере устанавливается минимальное количество рабочих потоков на четыре и сохраняет исходное значение для минимального количества асинхронных потоков завершения ввода-вывода.

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

Комментарии

Пул потоков предоставляет новые рабочие потоки или потоки завершения ввода-вывода по запросу, пока не достигнет минимального значения для каждой категории. По умолчанию минимальное количество потоков равно количеству процессоров в системе. По достижении минимального значения пул потоков может создавать дополнительные потоки в этой категории или ожидать завершения некоторых задач. Начиная с .NET Framework 4 пул потоков создает и уничтожает потоки для оптимизации пропускной способности, которая определяется как количество задач, которые выполняются за единицу времени. Слишком мало потоков может не обеспечить оптимальное использование доступных ресурсов, в то время как слишком много потоков может усилить конкуренцию за ресурсы.

Note

Если спрос низкий, фактическое количество потоков в пуле может быть ниже минимального числа.

Применяется к

См. также раздел