ThreadPool.GetMinThreads(Int32, Int32) Metod

Definition

Hämtar det minsta antalet trådar som trådpoolen skapar på begäran, när nya begäranden görs, innan du växlar till en algoritm för att hantera skapande och destruktion av trådar.

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)

Parametrar

workerThreads
Int32

När den här metoden returnerar innehåller det minsta antalet arbetstrådar som trådpoolen skapar på begäran.

completionPortThreads
Int32

När den här metoden returneras innehåller det minsta antalet asynkrona I/O-trådar som trådpoolen skapar på begäran.

Exempel

I följande exempel anges det minsta antalet arbetstrådar till fyra och det ursprungliga värdet bevaras för det minsta antalet asynkrona I/O-slutförandetrådar.

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

Kommentarer

Trådpoolen innehåller nya arbetstrådar eller I/O-slutförandetrådar på begäran tills den når minimivärdet för varje kategori. Som standard anges det minsta antalet trådar till antalet processorer i ett system. När minimivärdet har uppnåtts kan trådpoolen skapa ytterligare trådar i den kategorin eller vänta tills vissa uppgifter har slutförts. Från och med .NET Framework 4 skapar och förstör trådpoolen trådar för att optimera dataflödet, vilket definieras som antalet uppgifter som slutförs per tidsenhet. För få trådar kanske inte använder tillgängliga resurser optimalt, medan för många trådar kan öka resurskonkurrationen.

Note

När efterfrågan är låg kan det faktiska antalet trådpooltrådar understiga minimivärdena.

Gäller för

Se även