title: Can't make a foreach run simultaneously
body: <p>I've been trying to run a loop that does the same logic for every variable simultaneously.
  I've been trying it with the foreach loop but instead of doing it simultaneously, it takes one value at a time and executes the logic for it and then passes to the next one instead of doing it at the same time for all of them.
  Let's take this as an example:</p>
  
  <pre><code>public static ArrayList MyFamily = new ArrayList() { "Me", "Mom", "Dad", "Brother" }
  public static bool SayPrayer = false;
  public static bool PickUpTheFork = false;
  public static bool StartEating = false;
  </code></pre>
  
  <p>Now let's say I want to make all my family behave at dinner in the same way at the each same time:</p>
  
  <pre><code>public static void Dinner ()
  {
      foreach (string Person in MyFamily)
      {
          SayPrayer = true;
          Thread.Sleep(30000);
          SayPrayer = false;
          PickUpTheFork = true;
          Thread.Sleep(3000)
          PickUpTheFork = false;
          StartEating = true;
      }
  }
  </code></pre>
  
  <p>I've figured that if I make distinct foreach loops for each actions and put the thread.sleep between them (outside the loops) it works in somehow. However, is there a easier way to do it?</p>