title: Determining when all threads have finished c#
body: <p>I am very new to threading, as a beginner in C#. I have a program that will be firing multiple threads inside of a windows app. My aim is to start a new thread for every item within a list. The items in this list are workstation names on anetwork. Each thread that is created will look to do repairs on each machine, when the thread has finished it will write to a log file of any errors found etc. But what i want to be able to determine is when all threads have finished. So if i have 100 machines, 100 threads, how do i determine when all have closed?</p>
  
  <p>Heres my method below :-</p>
  
  <pre><code>private void repairClientsToolStripMenuItem_Click(object sender, EventArgs e)
  {
      if (machineList.Count() != 0)
      {
          foreach (string ws in machineList)
          {
              new Thread(new ParameterizedThreadStart(fixClient), stack).Start(ws);
          }
      }
      else
      {
           MessageBox.Show("Please import data before attempting this procedure");
      }
  }
  </code></pre>