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 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 en düşük değere ulaşana kadar isteğe bağlı olarak 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ı bir 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'le 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şmelerini artırabilir.
Note
Talep düşük olduğunda, iş parçacığı havuzundaki gerçek iş parçacığı sayısı minimum değerlerin altına düşebilir.