Compartilhar via


ThreadPool.GetAvailableThreads(Int32, Int32) Método

Definição

Recupera a diferença entre o número máximo de threads do pool de threads retornados pelo método GetMaxThreads(Int32, Int32) e o número de ativos no momento.

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)

Parâmetros

workerThreads
Int32

O número de threads de trabalho disponíveis.

completionPortThreads
Int32

O número de threads de E/S assíncronos disponíveis.

Exemplos

O exemplo a seguir exibe o número de threads de trabalho e threads de E/S disponíveis quando um aplicativo simples é iniciado.

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

Comentários

Quando GetAvailableThreads retorna, a variável especificada contém workerThreads o número de threads de trabalho adicionais que podem ser iniciados e a variável especificada por completionPortThreads contém o número de threads de E/S assíncronos adicionais que podem ser iniciados.

Se não houver threads disponíveis, as solicitações adicionais do pool de threads permanecerão enfileiradas até que os threads do pool de threads fiquem disponíveis.

Aplica-se a

Confira também