ThreadPool.GetAvailableThreads Method (Int32, Int32)


Retrieves the difference between the maximum number of thread pool threads returned by the GetMaxThreads method, and the number currently active.

Namespace:   System.Threading
Assembly:  mscorlib (in mscorlib.dll)

Public Shared Sub GetAvailableThreads (
	<OutAttribute> ByRef workerThreads As Integer,
	<OutAttribute> ByRef completionPortThreads As Integer


Type: System.Int32

The number of available worker threads.

Type: System.Int32

The number of available asynchronous I/O threads.

When GetAvailableThreads returns, the variable specified by workerThreads contains the number of additional worker threads that can be started, and the variable specified by completionPortThreads contains the number of additional asynchronous I/O threads that can be started.

If there are no available threads, additional thread pool requests remain queued until thread pool threads become available.

The following example displays the number of worker threads and I/O threads available when a simple app is started.

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

.NET Framework
Available since 1.1
Return to top