Home > DeveloperSection > Blogs > Implementation of ThreadStart class in C#

Implementation of ThreadStart class in C#


C# C# 
Ratings:
0 Comment(s)
 3486  View(s)
Rate this:

Here in this blog I will show you a small demo of ThreadStart delegate which is used to create starting point in Thread. In this demonstration I used Thread class which is used to create object of Thread, ThreadStart class which work as delegate for Thread class and work for starting point for current thread and finally I used Sleep() method of thread class. When we want to pause execution of current thread then we call Sleep() method of thread class and pass interval in milliseconds.

Following example demonstrate use of ThreadStart class for creating thread in c#.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

 

namespace ThreadStartDemo

{

    class ThreadDemo

    {

        static void Main(string[] args)

        {

            Thread th;  //Declaring reference variable of thread class.

 

            //Creating object of ThreadStart class.

            ThreadStart thStart = new ThreadStart(DoWork);

 

            for (int i = 1; i < 5; i++)

            {

                Console.WriteLine("Starting Thread : {0}", i);

 

                //Creating object of thread class and passing thread start

                //object as parameter to thread class.

                th = new Thread(thStart);

                th.Name = i.ToString();

 

                //Starting new thread by calling Start() method.

                th.Start();

            }

            Console.ReadLine();

        }

 

        /// <summary>

        /// DoWork method is passed to ThreadStart constructor.

        /// This methood is used to display total iteration of current

        /// executing thread and thread name.

        /// Thread.Sleep() method is used to Pause executing thread.

        /// </summary>

        static void DoWork()

        {

            for (int count = 1; count <= 10; count++)

            {

                Console.WriteLine("Thread {0} : iteration : {1}", Thread.CurrentThread.Name, count);

                Thread.Sleep(10);

            }

        }

    }

}

After executing this class you will see following output. This output may be vary depending upon priority set to thread.

Starting Thread : 1

Starting Thread : 2

Thread 1 : iteration : 1

Thread 2 : iteration : 1

Starting Thread : 3

Starting Thread : 4

Thread 3 : iteration : 1

Thread 4 : iteration : 1

Thread 2 : iteration : 2

Thread 1 : iteration : 2

Thread 4 : iteration : 2

Thread 3 : iteration : 2

Thread 1 : iteration : 3

Thread 3 : iteration : 3

Thread 2 : iteration : 3

Thread 4 : iteration : 3

Thread 1 : iteration : 4

Thread 2 : iteration : 4

Thread 4 : iteration : 4

Thread 3 : iteration : 4

Thread 1 : iteration : 5

Thread 3 : iteration : 5

Thread 4 : iteration : 5

Thread 2 : iteration : 5

Thread 1 : iteration : 6

Thread 2 : iteration : 6

Thread 4 : iteration : 6

Thread 3 : iteration : 6

Thread 1 : iteration : 7

Thread 4 : iteration : 7

Thread 2 : iteration : 7

Thread 3 : iteration : 7

Thread 1 : iteration : 8

Thread 4 : iteration : 8

Thread 2 : iteration : 8

Thread 3 : iteration : 8

Thread 1 : iteration : 9

Thread 4 : iteration : 9

Thread 2 : iteration : 9

Thread 3 : iteration : 9

Thread 1 : iteration : 10

Thread 4 : iteration : 10

Thread 3 : iteration : 10

Thread 2 : iteration : 10

Thanks for reading this blog.


Don't want to miss updates? Please click the below button!

Follow MindStick