Freigeben über


ThreadPool.SetMinThreads-Methode

Legt die Anzahl von Threads im Leerlauf fest, die im Threadpool für neue Anforderungen bereitstehen.

Namespace: System.Threading
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function SetMinThreads ( _
    workerThreads As Integer, _
    completionPortThreads As Integer _
) As Boolean
'Usage
Dim workerThreads As Integer
Dim completionPortThreads As Integer
Dim returnValue As Boolean

returnValue = ThreadPool.SetMinThreads(workerThreads, completionPortThreads)
public static bool SetMinThreads (
    int workerThreads,
    int completionPortThreads
)
public:
static bool SetMinThreads (
    int workerThreads, 
    int completionPortThreads
)
public static boolean SetMinThreads (
    int workerThreads, 
    int completionPortThreads
)
public static function SetMinThreads (
    workerThreads : int, 
    completionPortThreads : int
) : boolean

Parameter

  • workerThreads
    Die neue Mindestanzahl von Arbeitsthreads im Leerlauf, die im Threadpool verwaltet werden sollen.
  • completionPortThreads
    Die neue Mindestanzahl von asynchronen E/A-Threads im Leerlauf, die im Threadpool verwaltet werden sollen.

Rückgabewert

true, wenn die Änderung erfolgreich ist, andernfalls false.

Hinweise

Im Threadpool werden Threads im Leerlauf verwaltet, um die Zeit bis zum Erfüllen von Anforderungen nach neuen Threadpoolthreads zu verkürzen. Für Arbeitsthreads und asynchrone E/A-Threads werden separate Minimalwerte verwaltet. Wenn die Anzahl der Threads im Leerlauf die Mindestanzahl überschreitet, werden die überzähligen Threads beendet, um Systemressourcen zu sparen. Threads im Leerlauf werden im Hintergrund verwaltet.

Hinweis

GetMinThreads und SetMinThreads rufen unabhängig von der Anzahl der Prozessoren im Computer die Gesamtanzahl der im Threadpool verwalteten Threads im Leerlauf ab oder legen sie fest.

Bei Angabe einer negativen Zahl oder einer Zahl, die größer als die maximale Anzahl für aktive Threadpoolthreads (abgerufen mit GetMaxThreads) ist, gibt SetMinThreads false zurück und keiner der Mindestwerte wird geändert.

Warnung

Wenn die Anzahl der Threads im Leerlauf auf weniger als die Anzahl der Prozessoren festgelegt wird, kann die Leistung beeinträchtigt werden. Die Verwaltung einer großen Anzahl von Threads im Leerlauf verbraucht Systemressourcen. Unter Umständen müssen Sie die Anzahl anpassen, um eine optimale Gesamtleistung zu erzielen. Eine geringe Erhöhung der Anzahl der Threads im Leerlauf kann zu einer signifikanten Verbesserung des Durchsatzes von Anwendungen führen, bei denen sich Phasen der Inaktivität mit plötzlich einsetzenden Phasen hoher Aktivität abwechseln.

Beispiel

Im folgenden Beispiel wird die Mindestanzahl der Arbeitsthreads im Leerlauf auf vier festgelegt und der ursprüngliche Wert für die Mindestanzahl asynchroner E/A-Abschlussthreads beibehalten.

Imports System
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
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.
        }
    }
}
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.
   }
}
import System.*;
import System.Threading.*;
import System.Threading.Thread;

public class Test
{
    public static void main(String[] args)
    {
        int minWorker = 0;
        int minIOC = 0;

        // 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.
        }
    } //main
} //Test

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1

Siehe auch

Referenz

ThreadPool-Klasse
ThreadPool-Member
System.Threading-Namespace
GetMinThreads
GetMaxThreads
GetAvailableThreads