Task.Wait() not waiting for task to finish
<p>I have a console app and I want to launch tasks one after the other.</p>

<p>Here is my code:</p>

<pre><code>static void Main()
{
    string keywords = "Driving Schools,wedding services";
    List&lt;string&gt; kwl = keywords.Split(',').ToList();

    foreach(var kw in kwl)
    {
        Output("SEARCHING FOR: " + kw);
        Task t = new Task(() =&gt; Search(kw));
        t.Start();
        t.Wait();
    }

    Console.ReadLine();
}

static async void Search(string keyword)
{
    // code for searching
}
</code></pre>

<p>The problem is that it doesn't wait for the first task to finish executing.  It fires off the subsequent tasks concurrently.</p>

<p>I am working with a rate limited API so I want to do one after the other.</p>

<p>Why is it not waiting for one search to finish before starting the next search?</p>