title: Pause execution of a method without locking GUI. C#
body: <p>I'm working on a card game in C# for a project on my Intro to OOP paper and have got the game working now but am adding "flair" to the GUI.</p>
  
  <p>Currently cards are dealt and appear on the UI instantaneously. I want to have to program pause for a moment after dealing a card before it deals the next.</p>
  
  <p>When a game is started the following code runs to populate the PictureBoxes that represent them (will be a loop eventually):</p>
  
  <pre><code>        cardImage1.Image = playDeck.deal().show();
          cardImage2.Image = playDeck.deal().show();
          cardImage3.Image = playDeck.deal().show();
          cardImage4.Image = playDeck.deal().show();
          cardImage5.Image = playDeck.deal().show();
          ...
  </code></pre>
  
  <p>I have tries using System.Threading.Thread.Sleep(100); between each deal().show() and also inside each of those methods but all it achieves is locking up my GUI until all of the sleeps have processed then display all of the cards at once.</p>
  
  <p>I have also tried using a combination of a timer and while loop but it resulted in the same effect.</p>
  
  <p>What would be the best way of achieving the desired result?</p>