Home > .NET Development > C# using ThreadPool for multi-threaded application

C# using ThreadPool for multi-threaded application

I’m currently designing an application specifically to handle multiple processing at a certain time. I’ve read all articles about threading, whether to use a background worker, custom thread management, or by using a thread pool. What facinates me is the thread pool, just by passing a workitem viola you have a working multi-threaded application. See simple example below:

using System;
using System.Threading;

public class MyProcess

    private ManualResetEvent _doneEvent;

    public MyProcess(ManualResetEvent doneEvent)
        _doneEvent = doneEvent;

    public void MyProcessThreadPoolCallback(Object threadContext)
        int threadIndex = (int)threadContext;
        Console.WriteLine("thread {0} started...", threadIndex);
        Console.WriteLine("thread {0} end...", threadIndex);

    // Indicates that the process had been completed

    public void StartProcess()
        // TODO: Add code for processing here



public class ThreadPoolExample
    static void Main()
        const int totalCountToProcess = 10;
        ManualResetEvent[] doneEvents = new ManualResetEvent[totalCountToProcess];
        MyProcess[] MyProcessArray = new MyProcess[totalCountToProcess];
        // Configure and launch threads using ThreadPool:
        Console.WriteLine("launching tasks...");
        for (int i = 0; i < totalCountToProcess ; i++)
            doneEvents[i] = new ManualResetEvent(false);
            MyProcess p = new MyProcess(doneEvents[i]);
            MyProcess[i] = p;
            ThreadPool.QueueUserWorkItem(p.MyProcessThreadPoolCallback, i);

        // Wait for all threads in pool to finished processing

        Console.WriteLine("All Process are complete.");



Categories: .NET Development Tags: ,
  1. January 30, 2012 at 5:36 pm

    I am glad to here the all useful inforamtion

    mobile websites

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: