ThreadPool.GetAvailableThreads(Int32, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает разницу между максимальным числом потоков пула, возвращаемых методом GetMaxThreads(Int32, Int32), и числом активных в данный момент потоков.
public:
static void GetAvailableThreads([Runtime::InteropServices::Out] int % workerThreads, [Runtime::InteropServices::Out] int % completionPortThreads);
public static void GetAvailableThreads (out int workerThreads, out int completionPortThreads);
static member GetAvailableThreads : int * int -> unit
Public Shared Sub GetAvailableThreads (ByRef workerThreads As Integer, ByRef completionPortThreads As Integer)
Параметры
- workerThreads
- Int32
Количество доступных рабочих потоков.
- completionPortThreads
- Int32
Количество доступных потоков асинхронного ввода-вывода.
Примеры
В следующем примере отображается количество рабочих потоков и потоков ввода-вывода, доступных при запуске простого приложения.
using System;
using System.Threading;
public class Example
{
public static void Main()
{
int worker = 0;
int io = 0;
ThreadPool.GetAvailableThreads(out worker, out io);
Console.WriteLine("Thread pool threads available at startup: ");
Console.WriteLine(" Worker threads: {0:N0}", worker);
Console.WriteLine(" Asynchronous I/O threads: {0:N0}", io);
}
}
// The example displays output like the following:
// Thread pool threads available at startup:
// Worker threads: 32,767
// Asynchronous I/O threads: 1,000
Imports System.Threading
Module Example
Public Sub Main()
Dim worker As Integer = 0
Dim io As Integer = 0
ThreadPool.GetAvailableThreads(worker, io)
Console.WriteLine("Thread pool threads available at startup: ")
Console.WriteLine(" Worker threads: {0:N0}", worker)
Console.WriteLine(" Asynchronous I/O threads: {0:N0}", io)
End Sub
End Module
' The example displays output like the following:
' Thread pool threads available at startup:
' Worker threads: 32,767
' Asynchronous I/O threads: 1,000
Комментарии
При GetAvailableThreads возвращении переменная, указанная параметром workerThreads
, содержит количество дополнительных рабочих потоков, которые можно запустить, и переменная, указанная в ней completionPortThreads
, содержит количество дополнительных асинхронных потоков ввода-вывода, которые можно запустить.
Если нет доступных потоков, дополнительные запросы пула потоков остаются в очереди, пока не станут доступны потоки пула потоков.