What to use to wait on a indeterminate number of tasks?

Posted by Scott Chamberlain on Stack Overflow See other posts from Stack Overflow or by Scott Chamberlain
Published on 2010-06-15T19:58:28Z Indexed on 2010/06/15 20:12 UTC
Read the original article Hit count: 177

Filed under:
|
|

I am still fairly new to parallel computing so I am not too sure which tool to use for the job.

I have a System.Threading.Tasks.Task that needs to wait for n number number of tasks to finish before starting. The tricky part is some of its dependencies may start after this task starts (You are guaranteed to never hit 0 dependent tasks until they are all done).

Here is kind of what is happening

  1. Parent thread creates somewhere between 1 and (NUMBER_OF_CPU_CORES - 1) tasks.
  2. Parent thread creates task to be run when all of the worker tasks are finished.
  3. Parent thread creates a monitoring thread
  4. Monitoring thread may kill a worker task or spawn a new task depending on load.

I can figure out everything up to step 4. How do I get the task from step 2 to wait to run until any new worker threads created in step 4 finish?

© Stack Overflow or respective owner

Related posts about multithreading

Related posts about .net-4.0