Use Join() to wait for threads to end : Thread Join : Thread C# Examples


C# Examples » Thread » Thread Join »

 

Use Join() to wait for threads to end









    
using  System;  
using  System.Threading;  
  
class  MyThread  {  
    public  int  count;  
    public  Thread  thrd;  
  
    public  MyThread(string  name)  {  
        count  =  0;  
        thrd  =  new  Thread(this.run);  
        thrd.Name  =  name;  
        thrd.Start();  
    }  
  
    void  run()  {  
        Console.WriteLine(thrd.Name  +  "  starting.");  
  
        do  {  
            Thread.Sleep(500);  
            Console.WriteLine("In  "  +  thrd.Name  +  
                                                ",  count  is  "  +  count);  
            count++;  
        }  while(count  <  10);  
  
        Console.WriteLine(thrd.Name  +  "  terminating.");  
    }  
}  
  
class  MainClass  {  
    public  static  void  Main()  {  
        Console.WriteLine("Main  thread  starting.");  
  
        MyThread  mt1  =  new  MyThread("Child  #1");  
        MyThread  mt2  =  new  MyThread("Child  #2");  
        MyThread  mt3  =  new  MyThread("Child  #3");  
  
        mt1.thrd.Join();  
        Console.WriteLine("Child  #1  joined.");  
  
        mt2.thrd.Join();  
        Console.WriteLine("Child  #2  joined.");  
  
        mt3.thrd.Join();  
        Console.WriteLine("Child  #3  joined.");  
  
        Console.WriteLine("Main  thread  ending.");  
    }  
}
    
   
  
   



Output

Main thread starting.
Child #1 starting.
Child #2 starting.
Child #3 starting.
In Child #1, count is 0
In Child #2, count is 0
In Child #3, count is 0
In Child #1, count is 1
In Child #2, count is 1
In Child #3, count is 1
In Child #1, count is 2
In Child #2, count is 2
In Child #3, count is 2
In Child #1, count is 3
In Child #2, count is 3
In Child #3, count is 3
In Child #1, count is 4
In Child #2, count is 4
In Child #3, count is 4
In Child #1, count is 5
In Child #2, count is 5
In Child #3, count is 5
In Child #1, count is 6
In Child #2, count is 6
In Child #3, count is 6
In Child #1, count is 7
In Child #2, count is 7
In Child #3, count is 7
In Child #1, count is 8
In Child #2, count is 8
In Child #3, count is 8
In Child #1, count is 9
Child #1 terminating.
In Child #2, count is 9
Child #2 terminating.
In Child #3, count is 9
Child #3 terminating.
Child #1 joined.
Child #2 joined.
Child #3 joined.
Main thread ending.


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Thread
» Thread Join