I am trying to write an application that is multithreaded. It loads a list of files and kicks off a new thread for each one. The files are displayed in a datagrid with a % complete to indicate how much has been processed. The number of files being processed is dynamic. How do I multithread a dynamic number of threads and handle the events they throw to update the progress? I can do it for one thread or a definitive number of threads, but I can't figure out how to do it for a dynamic number of threads.