C# - How to Create a Thread Pool?

Learn, how to create a thread pool in C#? By Nidhi Last updated : March 29, 2023

Creating Thread Pool

To create a thread pool in C#, here we will create different tasks TheadFun1 and ThreadFun2, which is used to print messages on the console using the loop. The ThreadPool class is used to start both tasks without setting any property of threads.

C# program to create a thread pool

/*
 * Program to Create Thread Pools in C#
 */

using System;
using System.Threading;

class MyThreadPool {
  public void ThreadFun1(object obj) {
    int loop = 0;
    for (loop = 0; loop <= 4; loop++) {
      Console.WriteLine("Thread1 is execting");
    }
  }
  public void ThreadFun2(object obj) {
    int loop = 0;
    for (loop = 0; loop <= 4; loop++) {
      Console.WriteLine("Thread2 is execting");
    }
  }

  static void Main() {
    MyThreadPool TP = new MyThreadPool();

    for (int i = 0; i < 2; i++) {
      ThreadPool.QueueUserWorkItem(new WaitCallback(TP.ThreadFun1));
      ThreadPool.QueueUserWorkItem(new WaitCallback(TP.ThreadFun2));
    }
  }
}

Output

Thread1 is execting
Thread1 is execting
Thread1 is execting
Thread1 is execting
Thread1 is execting
Thread2 is execting
Thread2 is execting
Thread2 is execting
Thread2 is execting
Thread2 is execting
Thread1 is execting
Thread1 is execting
Thread1 is execting
Thread1 is execting
Thread1 is execting
Thread2 is execting
Thread2 is execting
Thread2 is execting
Thread2 is execting
Thread2 is execting
Press any key to continue . . .

Explanation

In the above program, we created a class MyThreadPool that contains two methods ThreadFun1 and ThreadFun2 to represent tasks. The MyThreadPool class also contains a Main() method to start program execution. Here we created Object TP of MyThreadPool class.

for (int i = 0; i < 2; i++)
{
    ThreadPool.QueueUserWorkItem(new WaitCallback(TP.ThreadFun1));
    ThreadPool.QueueUserWorkItem(new WaitCallback(TP.ThreadFun2));
}

The above code, The WaitCallBack() method is used to point the method to execute thread from the pool of thread.

C# Thread Programs »

Comments and Discussions!

Load comments ↻





Copyright © 2024 www.includehelp.com. All rights reserved.