title: How can I perform a short delay in C# without using sleep?
body: <p>I'm incredibly new to programming, and I've been learning well enough so far, I think, but I still can't get a grasp around the idea of making a delay the way I want. What I'm working on is a sort of test "game" thingy using a Windows forms application that involves a combat system. In it, I want to make an NPC that does an action every couple of seconds. The problem is, I also want to allow the player to interact between attacks. Thread.sleep really doesn't seem to work for me not only because I don't know how to multithread, but whenever I try to run it, say, like this: </p>
  
  <pre><code> textBox1.Text += "\r\nThread Sleeps!";
   System.Threading.Thread.Sleep(4000);
   textBox1.Text += "\r\nThread awakens!";
  </code></pre>
  
  <p>It seems to insist on sleeping first, then printing both lines. </p>
  
  <p>I think that's all I can say at the moment, but if that's still too vague or wordy, feel free to tell me. </p>
  
  <p>In short, In C# I want to make something delay before running but at the same time still allow user interaction.</p>