Re: How do I know when my work threads have completed their tasks?



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


"Pucca" <Pucca@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:89FCB56F-0EF0-42EB-A5F1-8D80B59B0657@xxxxxxxxxxxxxxxx
| 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.
| >
| > On Jan 26, 10:35 am, Pucca <P...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
| > > 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
| > >
| > > > "Pucca" <P...@xxxxxxxxxxxxxxxxxxxxxxxxx> schrieb im Newsbeitrag
| > > >news:E805594F-654D-4932-A062-01962A077D10@xxxxxxxxxxxxxxxx
| > > > > 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 -
| >
| >


.



Relevant Pages

  • Re: How do I know when my work threads have completed their tasks?
    ... You would be better served, I suspect, using a ManualResetEvent. ... then the second thread will wait on the Join until it is. ... Therefore, when the second (controller) thread is finished, you know ... which then starts the two worker threads. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: How do I know when my work threads have completed their tasks?
    ... started can be handed a reference to the first thread, ... then the second thread will wait on the Join until it is. ... Therefore, when the second (controller) thread is finished, you know ... which then starts the two worker threads. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: How do I know when my work threads have completed their tasks?
    ... I now need to return SearchResultCollection from both the thread. ... then the second thread will wait on the Join until it is. ... Therefore, when the second (controller) thread is finished, you know ... which then starts the two worker threads. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: How do I know when my work threads have completed their tasks?
    ... started can be handed a reference to the first thread, ... then the second thread will wait on the Join until it is. ... Therefore, when the second (controller) thread is finished, you know ... which then starts the two worker threads. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: How do I know when my work threads have completed their tasks?
    ... started can be handed a reference to the first thread, ... then the second thread will wait on the Join until it is. ... Therefore, when the second (controller) thread is finished, you know ... which then starts the two worker threads. ...
    (microsoft.public.dotnet.languages.csharp)