ThreadPool.SetMinThreads(Int32, Int32) Methode

Definition

Legt die Mindestanzahl von Threads fest, die der Threadpool bei Bedarf erstellt, wenn neue Anforderungen gestellt werden, bevor zu einem Algorithmus zum Verwalten von Threaderstellung und -löschung gewechselt wird.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

Parameter

workerThreads
Int32

Die Mindestanzahl von Arbeitsthreads, die der Threadpool bei Bedarf erstellt.The minimum number of worker threads that the thread pool creates on demand.

completionPortThreads
Int32

Die Mindestanzahl von asynchronen E/A-Threads, die der Threadpool bei Bedarf erstellt.The minimum number of asynchronous I/O threads that the thread pool creates on demand.

Gibt zurück

true, wenn die Änderung erfolgreich ist, andernfalls false.true if the change is successful; otherwise, false.

Beispiele

Im folgenden Beispiel wird die Mindestanzahl von Arbeitsthreads auf vier festgelegt, und der ursprüngliche Wert für die Mindestanzahl von asynchronen e/a-abschlusthreads wird beibehalten.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

Hinweise

Der Thread Pool stellt bei Bedarf neue Arbeitsthreads oder e/a-abschlusthreads bereit, bis die Mindestanzahl für jede Kategorie erreicht ist.The thread pool provides new worker threads or I/O completion threads on demand until it reaches the minimum for each category. Wenn der Minimalwert erreicht wird, kann der Thread Pool zusätzliche Threads in dieser Kategorie erstellen oder warten, bis einige Tasks beendet wurden.When the minimum is reached, the thread pool can create additional threads in that category or wait until some tasks complete. Beginnend mit dem .NET Framework 4.NET Framework 4erstellt und zerstört der Thread Pool Threads, um den Durchsatz zu optimieren, der als die Anzahl der Aufgaben definiert ist, die pro Zeiteinheit ausgeführt werden.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. Bei zu wenigen Threads werden die verfügbaren Ressourcen möglicherweise nicht optimal genutzt, wohingegen bei zu vielen Threads Ressourcenkonflikte auftreten können.Too few threads might not make optimal use of available resources, whereas too many threads could increase resource contention.

Wenn die Anforderungen niedrig sind, kann die tatsächliche Anzahl der Threads im Threadpool unterhalb der Mindestwerte liegen.When demand is low, the actual number of thread pool threads can fall below the minimum values.

Wenn Sie eine negative Zahl oder eine Zahl angeben, die größer ist als die maximale Anzahl aktiver Thread Pool-Threads (mit GetMaxThreadsabgerufen), gibt SetMinThreads false zurück und ändert keinen der Minimalwerte.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.

Achtung

Standardmäßig wird die Mindestanzahl von Threads auf die Anzahl der Prozessoren auf einem System festgelegt.By default, the minimum number of threads is set to the number of processors on a system. Sie können die SetMinThreads-Methode verwenden, um die Mindestanzahl von Threads zu erhöhen.You can use the SetMinThreads method to increase the minimum number of threads. Allerdings kann ein unnötiges Erhöhen dieses Wertes zu Leistungsproblemen führen.However, unnecessarily increasing these values can cause performance problems. Wenn zu viele Aufgaben gleichzeitig gestartet werden, werden möglicherweise alle Aufgaben zu langsam ausgeführt.If too many tasks start at the same time, all of them might appear to be slow. In den meisten Fällen wird der Thread Pool besser mit seinem eigenen Algorithmus zum Zuordnen von Threads durchgeführt.In most cases, the thread pool will perform better with its own algorithm for allocating threads. Wenn Sie die minimale Anzahl von Prozessoren verringern, kann dies auch die Leistung beeinträchtigen.Reducing the minimum to less than the number of processors can also hurt performance.

Sicherheit

SecurityPermission
, um Threads steuern zu können.for the ability to control threads. Berechtigungs Wert: ControlThreadPermission value: ControlThread

Gilt für:

Siehe auch