ThreadPool.GetMinThreads(Int32, Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte minimální počet vláken vytvořených fondem vláken na vyžádání při vytváření nových požadavků před přepnutím na algoritmus pro správu vytváření a zničení vlákna.
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)
Parametry
- workerThreads
- Int32
Když tato metoda vrátí, obsahuje minimální počet pracovních vláken, které fond vláken vytvoří na vyžádání.
- completionPortThreads
- Int32
Když tato metoda vrátí, obsahuje minimální počet asynchronních vstupně-výstupních vláken, které fond vláken vytvoří na vyžádání.
Příklady
Následující příklad nastaví minimální počet pracovních vláken na čtyři a zachová původní hodnotu pro minimální počet asynchronních vláken dokončení vstupně-výstupních operací.
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
Poznámky
Fond vláken poskytuje nová pracovní vlákna nebo vlákna dokončení vstupně-výstupních operací na vyžádání, dokud nedosáhne minima pro každou kategorii. Ve výchozím nastavení je minimální počet vláken nastaven na počet procesorů v systému. Po dosažení minima může fond vláken vytvořit další vlákna v dané kategorii nebo počkat na dokončení některých úloh. Počínaje rozhraním .NET Framework 4 fond vláken vytváří a ničí vlákna za účelem optimalizace propustnosti, která je definována jako počet úkolů, které se dokončí za jednotku času. Příliš málo vláken nemusí optimálně využívat dostupné prostředky, zatímco příliš mnoho vláken může zvýšit kolizí prostředků.
Poznámka
Pokud je poptávka nízká, skutečný počet vláken fondu vláken může klesnout pod minimální hodnoty.