Home »
.Net »
C# Programs
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 »