ThreadPool.GetMinThreads(Int32, Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İş parçacığı oluşturma ve yok etme işlemini yönetmek için bir algoritmaya geçmeden önce, yeni istekler yapıldıktan sonra iş parçacığı havuzunun isteğe bağlı olarak oluşturduğu en az iş parçacığı sayısını alır.
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)
Parametreler
- workerThreads
- Int32
Bu yöntem döndürdüğünde, iş parçacığı havuzunun isteğe bağlı olarak oluşturduğu en az çalışan iş parçacığı sayısını içerir.
- completionPortThreads
- Int32
Bu yöntem döndürdüğünde, iş parçacığı havuzunun isteğe bağlı olarak oluşturduğu en az zaman uyumsuz G/Ç iş parçacığı sayısını içerir.
Örnekler
Aşağıdaki örnek, en az çalışan iş parçacığı sayısını dört olarak ayarlar ve en az zaman uyumsuz G/Ç tamamlama iş parçacığı sayısı için özgün değeri korur.
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
Açıklamalar
İş parçacığı havuzu, her kategori için minimum değere ulaşana kadar isteğe bağlı yeni çalışan iş parçacıkları veya G/Ç tamamlama iş parçacıkları sağlar. Varsayılan olarak, en az iş parçacığı sayısı sistemdeki işlemci sayısına ayarlanır. En düşük değere ulaşıldığında, iş parçacığı havuzu bu kategoride ek iş parçacıkları oluşturabilir veya bazı görevlerin tamamlanmasını bekleyebilir. .NET Framework 4'ünden başlayarak, iş parçacığı havuzu aktarım hızını iyileştirmek için iş parçacıklarını oluşturur ve yok eder. Bu işlem, zaman birimi başına tamamlanan görev sayısı olarak tanımlanır. Çok az iş parçacığı kullanılabilir kaynakları en iyi şekilde kullanmayabilirken, çok fazla iş parçacığı kaynak çekişmesini artırabilir.
Not
Talep düşük olduğunda, gerçek iş parçacığı havuzu iş parçacığı sayısı minimum değerlerin altına düşebilir.