ThreadPool.GetMinThreads(Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Mindestanzahl von Threads ab, die der Threadpool bei Bedarf erstellt, wenn neue Anforderungen gestellt werden, bevor zu einem Algorithmus zum Verwalten von Threaderstellung und -löschung gewechselt wird.
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)
Parameter
- workerThreads
- Int32
Enthält nach der Rückgabe dieser Methode die Mindestanzahl von Arbeitsthreads, die der Threadpool bei Bedarf erstellt.
- completionPortThreads
- Int32
Enthält nach der Rückgabe dieser Methode die Mindestanzahl von asynchronen E/A-Threads, die der Threadpool bei Bedarf erstellt.
Beispiele
Im folgenden Beispiel wird die Mindestanzahl von Workerthreads auf vier festgelegt und der ursprüngliche Wert für die Mindestanzahl asynchroner E/A-Vervollständigungsthreads beibehalten.
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 Threadpool stellt bei Bedarf neue Workerthreads oder E/A-Vervollständigungsthreads bereit, bis er das Minimum für jede Kategorie erreicht. Standardmäßig entspricht die minimale Anzahl von Threads der Anzahl von Prozessoren in einem System. Wenn das Minimum erreicht ist, kann der Threadpool zusätzliche Threads in dieser Kategorie erstellen oder warten, bis einige Aufgaben abgeschlossen sind. Ab dem .NET Framework 4 erstellt und zerstört der Threadpool Threads, um den Durchsatz zu optimieren. Dies ist definiert als die Anzahl der Aufgaben, die pro Zeiteinheit abgeschlossen werden. Bei zu wenigen Threads werden die verfügbaren Ressourcen möglicherweise nicht optimal genutzt, wohingegen bei zu vielen Threads Ressourcenkonflikte auftreten können.
Hinweis
Wenn die Anforderungen niedrig sind, kann die tatsächliche Anzahl der Threads im Threadpool unterhalb der Mindestwerte liegen.