C# | Thread(ParameterizedThreadStart) Constructor

Thread(ParameterizedThreadStart) Constructor is used to initialize a new instance of the Thread class. It defined a delegate which allows an object to pass to the thread when the thread starts. This constructor gives ArgumentNullException if the parameter of this constructor is null.
 

Syntax:  

public Thread(ParameterizedThreadStart start);

Here, start is a delegate which represents a method to be invoked when this thread begins executing.
Below programs illustrate the use of Thread(ParameterizedThreadStart) Constructor:
Example 1: 

CSharp




// C# program to illustrate the
// use of Thread(ParameterizedThreadStart)
// constructor with non-static method
using System;
using System.Threading;
 
public class MYTHREAD {
 
    // Non-static method
    public void Job()
    {
        for (int z = 0; z < 3; z++) {
 
            Console.WriteLine("My thread is "+
                          "in progress...!!");
        }
    }
}
 
// Driver Class
public class GFG {
 
    // Main Method
    public static void Main()
    {
        // Creating object of MYTHREAD class
        MYTHREAD obj = new MYTHREAD();
 
        // Creating a thread which
        // calls a parameterized instance method
        Thread thr = new Thread(obj.Job);
        thr.Start();
    }
}


Output: 

My thread is in progress...!!
My thread is in progress...!!
My thread is in progress...!!

Example 2:

CSharp




// C# program to illustrate the use of
// Thread(ParameterizedThreadStart)
// constructor with static method
using System;
using System.Threading;
 
// Driver Class
public class GFG {
 
    // Main Method
    public static void Main()
    {
        // Creating a thread which calls
        // a parameterized static-method
        Thread thr = new Thread(Job);
        thr.Start();
    }
 
    // Static method
    public static void Job()
    {
        Console.WriteLine("My thread is"+
                    " in progress...!!");
 
        for (int z = 0; z < 3; z++) {
            Console.WriteLine(z);
        }
    }
}


Output: 

My thread is in progress...!!
0
1
2

Reference: 

  • https://docs.microsoft.com/en-us/dotnet/api/system.threading.thread.-ctor?view=netframework-4.7.2#System_Threading_Thread__ctor_System_Threading_ParameterizedThreadStart_


Contact Us