ThreadPool.GetAvailableThreads(Int32, Int32) Metodo

Definizione

Recupera la differenza tra il numero massimo di thread del pool di thread restituito dal metodo GetMaxThreads(Int32, Int32) e il numero attualmente attivo.

public static void GetAvailableThreads (out int workerThreads, out int completionPortThreads);

Parametri

workerThreads
Int32

Numero di thread di lavoro disponibili.

completionPortThreads
Int32

Numero di thread I/O asincroni disponibili.

Esempio

Nell'esempio seguente viene visualizzato il numero di thread di lavoro e thread di I/O disponibili all'avvio di una semplice app.

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

Commenti

Quando GetAvailableThreads termina, la variabile specificata da workerThreads contiene il numero di thread di lavoro aggiuntivi che possono essere avviati e la variabile specificata da completionPortThreads contiene il numero di thread di I/O asincroni aggiuntivi che possono essere avviati.

Se non sono presenti thread disponibili, le richieste aggiuntive del pool di thread rimangono in coda fino a quando i thread del pool di thread non diventano disponibili.

Si applica a

Prodotto Versioni
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Vedi anche