Solved

C# framework 3.5:how wait multiple threads to complete?

Posted on 2009-07-03
4
1,222 Views
Last Modified: 2013-12-17
C# framework 3.5:how wait multiple threads to complete?for example I have three threads and I want to wait to complete all (3 threads);
if (_couponCounter >= Constants.PacketProcessedcoupons || NoCouponFound == true)
                    {
                        StoredProceduresData._1 = new Thread(new   ThreadStart(StoredProceduresData.CallSpInsertColumns_1));
                        StoredProceduresData._2 = new Thread(new ThreadStart(StoredProceduresData.CallSpInsertColumns_1));
                        StoredProceduresData._30 = new Thread(new ThreadStart(StoredProceduresData.CallSpInsertColumns_1));
                        StoredProceduresData._1.Start();
                        StoredProceduresData._2.Start();
                        StoredProceduresData._30.Start();
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//....Wait  until to complete ALL 3 threads...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!                        
                       // StoredProceduresData.CallSpInsertColumns();
                        
                        _couponCounter = 0;
                    }

Open in new window

0
Comment
Question by:nikavak
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 
LVL 53

Accepted Solution

by:
Dhaest earned 500 total points
ID: 24771416
A way to solve it:
1. Create and start the threads. Each thread increments a synchronized global thread counter.

2. Have each thread signal that is is finished by decrementing the global counter.

3. Put the main process on a timer that periodically tests the counter, and idles the rest of the time. When the count gets to zero, take the next action.
0
 
LVL 9

Expert Comment

by:Rahul Goel ITIL
ID: 24771417
You can use the BackgroundWorker Threads instread of normal threads, it will intimate you when it endns and what is progress.
0
 
LVL 53

Expert Comment

by:Dhaest
ID: 24771424
Thread..::.Join Method

Blocks the calling thread until a thread terminates, while continuing to perform standard COM and SendMessage pumping.

http://msdn.microsoft.com/en-us/library/95hbf2ta.aspx


StoredProceduresData._1.Join();
StoredProceduresData._2.Join();
StoredProceduresData._30.Join();
0
 

Author Closing Comment

by:nikavak
ID: 31599515
Thanks a lot
0

Featured Post

Is Your DevOps Pipeline Leaking?

Is your CI/CD pipeline a hodge-podge of randomly connected tools? You’ve likely got a tool to fix one problem & then a different tool to fix another, resulting in a cluster of tools with overlapping functionality. Learn how to optimize your pipeline with Gartner's recommendations

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Summary Displaying images in RichTextBox is a common requirement with limited solutions available. Pasting through clipboard or embedding into RTF content only support static images.  This article describes how to insert Windows control objects int…
A basic question.. “What is the Garbage Collector?” The usual answer given back: “Garbage collector is a background thread run by the CLR for freeing up the memory space used by the objects which are no longer used by the program.” I wondered …
If you're a developer or IT admin, you’re probably tasked with managing multiple websites, servers, applications, and levels of security on a daily basis. While this can be extremely time consuming, it can also be frustrating when systems aren't wor…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question