C# Program to Create a Thread Pool


For a thread pool, create more than two functions and queue methods for execution.

Firstly, create a method like −

public void one(object o) {
   for (int i = 0; i <= 3; i++) {
      Console.WriteLine("One executed");
   }
}

In the same way, create more methods and then use ThreadPool.QueueUserWorkItem to queue the methods for execution −

Demo d = new Demo();
for (int i = 0; i < 3; i++) {
   ThreadPool.QueueUserWorkItem(new WaitCallback(d.one));
   ThreadPool.QueueUserWorkItem(new WaitCallback(d.two));
   ThreadPool.QueueUserWorkItem(new WaitCallback(d.three));
}

Example

You can try to run the following C# code to create a Thread Pool.

Live Demo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
class Demo {
   public void one(object o) {
      for (int i = 0; i <= 3; i++) {
         Console.WriteLine("One executed");
      }
   }
   public void two(object o) {
      for (int i = 0; i <= 3; i++) {
         Console.WriteLine("Two executed");
      }
   }
   public void three(object o) {
      for (int i = 0; i <= 3; i++) {
         Console.WriteLine("Three executed");
      }
   }
   static void Main() {
      Demo d = new Demo();
      for (int i = 0; i < 3; i++) {
         ThreadPool.QueueUserWorkItem(new WaitCallback(d.one));
         ThreadPool.QueueUserWorkItem(new WaitCallback(d.two));
         ThreadPool.QueueUserWorkItem(new WaitCallback(d.three));
      }
      Console.Read();
   }
}

Output

Two executed
Two executed
Two executed
Two executed
Two executed
Two executed
Two executed
One executed
One executed
One executed
One executed
One executed
Two executed
Two executed
Three executed
Three executed
Two executed
One executed
Three executed
Two executed
Three executed
One executed
One executed
One executed

Updated on: 19-Jun-2020

485 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements