ThreadPool.GetMinThreads(Int32, Int32) Metode

Definisi

Mengambil jumlah minimum utas yang dibuat kumpulan utas sesuai permintaan, karena permintaan baru dibuat, sebelum beralih ke algoritma untuk mengelola pembuatan dan penghancuran utas.

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

Ketika metode ini kembali, berisi jumlah minimum utas pekerja yang dibuat kumpulan utas sesuai permintaan.

completionPortThreads
Int32

Ketika metode ini kembali, berisi jumlah minimum utas I/O asinkron yang dibuat kumpulan utas sesuai permintaan.

Contoh

Contoh berikut menetapkan jumlah minimum utas pekerja menjadi empat, dan mempertahankan nilai asli untuk jumlah minimum utas penyelesaian I/O asinkron.

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

Keterangan

Kumpulan utas menyediakan utas pekerja baru atau utas penyelesaian I/O sesuai permintaan hingga mencapai minimum untuk setiap kategori. Secara default, jumlah minimum utas diatur ke jumlah prosesor pada sistem. Ketika minimum tercapai, kumpulan utas dapat membuat utas tambahan dalam kategori tersebut atau menunggu hingga beberapa tugas selesai. Dimulai dengan .NET Framework 4, kumpulan utas membuat dan menghancurkan utas untuk mengoptimalkan throughput, yang didefinisikan sebagai jumlah tugas yang selesai per unit waktu. Terlalu sedikit utas mungkin tidak memanfaatkan sumber daya yang tersedia secara optimal, namun terlalu banyak utas dapat meningkatkan perebutan sumber daya.

Note

Ketika permintaan rendah, jumlah aktual utas kumpulan utas dapat berada di bawah nilai minimum.

Berlaku untuk

Lihat juga