using System.Threading.Tasks;
public static void Main()
int nCompletionPortThreads;
ThreadPool.GetMaxThreads(out nWorkerThreads, out nCompletionPortThreads);
Console.WriteLine("Max worker threads: {0}, " +
"I/O completion threads: {1}", nWorkerThreads, nCompletionPortThreads);
for (int i = 0; i < 5; i++)
ThreadPool.QueueUserWorkItem(JobForAThread);
static void JobForAThread(object state)
for (int i = 0; i < 3; i++)
Console.WriteLine("loop {0}, running inside pooled thread {1}",
i, Thread.CurrentThread.ManagedThreadId);