I always enjoy seeing how I might do the same thing when using my
concurrency library.
This is actually a pretty common pattern (i.e. scatter/gather). I sample
this pattern here
http://www.codeplex.com/PCR/Thread/View.aspx?ThreadId=3459
--
William Stacey [C# MVP]
PCR concurrency library:
www.codeplex.com/pcr
PSH Scripts Project
www.codeplex.com/psobject
| I'm using threadpool so I used AutoeventReset and it worked. Thank you
very
| much.
| --
| Thanks.
|
|
| "Bruce Wood" wrote:
|
| > You use the Join method on the threads. However, there's a small
| > problem: if you call Join in the UI thread, then you hang the UI.
| >
| > The usual solution is to use one of the two threads as a "controller",
| > or use a third thread. In the first case, the second thread to be
| > started can be handed a reference to the first thread, and do a Join
| > before it signals that it's finished. If the first thread isn't
| > finished yet, then the second thread will wait on the Join until it is.
| > Therefore, when the second (controller) thread is finished, you know
| > that they're both finishes.
| >
| > If the two threads are not logically related this way, then it might be
| > nicer to use a third, controller thread: the UI starts the controller,
| > which then starts the two worker threads. The controller then does two
| > Joins, one on each worker thread, and when the two Joins complete, it
| > signals the UI that all is done. This is scalable to an arbitrary
| > number of worker threads.
| >
| > > Thank you Christof. These 2 threads are started within a form as
worker
| > > threads only. They are coded as 2 static method within this form.
The 2
| > > threads have no form of its own. How can I then find out when they're
both
| > > done with their tasks?
| > > --
| > > Thanks.
| > >
| > >
| > >
| > > "Christof Nordiek" wrote:
| > > > Hi Pucca,
| > >
| > > > the WaitCallBack-handler (PopulateContextTable e.g.) should signal
that at
| > > > the and, maybe in a finally block. If this is called from a
GUI-Thread you
| > > > could call BeginInvoke on one of the Forms methods.
| > >
| > > > Christof
| > >
| > > >| > > > > Hi, I'm using vs2005 and .net 2.0. I started 2 threadpool
threads. How
| > > > > do I
| > > > > know when they're done with their tasks? Thanks.
| > >
| > > > > ThreadPool.QueueUserWorkItem(new
WaitCallback(PopulateContextTable));
| > > > > ThreadPool.QueueUserWorkItem(new WaitCallback(PopulatAdTable));
| > > > > --
| > > > > Thanks.- Hide quoted text -- Show quoted text -
| >
| >