Re: How do I know when my work threads have completed their tasks?
- From: Pucca <Pucca@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 31 Jan 2007 14:08:00 -0800
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 -
- Follow-Ups:
- Re: How do I know when my work threads have completed their tasks?
- From: Barry Kelly
- Re: How do I know when my work threads have completed their tasks?
- From: Chris Mullins [MVP]
- Re: How do I know when my work threads have completed their tasks?
- References:
- Re: How do I know when my work threads have completed their tasks?
- From: Christof Nordiek
- Re: How do I know when my work threads have completed their tasks?
- From: Bruce Wood
- Re: How do I know when my work threads have completed their tasks?
- Prev by Date: How to get username, password from .NET Windows service installation to actual service code ?
- Next by Date: Re: How do I know when my work threads have completed their tasks?
- Previous by thread: Re: How do I know when my work threads have completed their tasks?
- Next by thread: Re: How do I know when my work threads have completed their tasks?
- Index(es):
Relevant Pages
|