Click here to Skip to main content
15,884,176 members
Articles / Programming Languages / C#
Article

Multi-threaded polling process - base for NT-Service

Rate me:
Please Sign up or sign in to vote.
3.08/5 (19 votes)
23 Mar 2003 52.6K   1.6K   24   3
This is a simple skeleton for a multi-thread process or services

Sample Image - PGThreads.gif

Introduction

This sample code may be use as a basic skeleton for a multi-threaded process or service.

Background (optional)

Article "A simple tutorial on Multithreaded Programming using C#" from Zeeshan Amjad may be useful for beginners.

Using the code

To use the code:

  • create a new Console Application (or a Windows Services),
  • Replace [STAThread] attribute by [MTAThread] attribute of the Main method (for Console Application),
  • add WorkerThread.cs and WorkerThreadManager.cs files to your projet,
  • modify the DoSomethingUseful method by providing your task,
  • create a new WorkerThreadManager,
  • call Start / Stop methods.

That's it.

Example of basic main method:

C#
// Any source code blocks look like this
[MTAThread]
static void Main(string[] args)
{
    String sCmd; WorkerThreadManager oManager = new WorkerThreadManager();

    for (;;)
    { 
        Console.WriteLine("EXIT/START/STOP"); 
        Console.Write("$ "); 
        sCmd = Console.ReadLine ();
        if (sCmd.ToUpper() == "EXIT")
        {
            // Stop manager and exit loop
            // oManager.Stop();
            break;
        }

        if (sCmd.ToUpper() == "START")
        {
            // Start manager
            // oManager.Start();
        }
        else if (sCmd.ToUpper() == "STOP")
        {
            // Stop manager
            // oManager.Stop();
        }
    }
} 

Points of Interest

This code is the basic skeleton of one of our high availability SMS (Short Message System) platform. It actually handles a couple of million of SMS per month on a 24/7 basis. 

History

  • 24th March, 2003 - First revision.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
France France
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
QuestionInfo about this kind of project Pin
JLuis Estrada26-Apr-07 7:42
JLuis Estrada26-Apr-07 7:42 
Hi there!

Very interesting you code.

Im developing some kind of server for GPS tracking. And your sample code its very practical for my app.

Dont you have some more samples or a best explanation of your code.

Hope you can help me.

Regards
JLuis

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.