title: Console.ReadLine in async method isn't blocking progression..?
body: <p>I need to know if there's a way to execute DownloadPage(result) without immediately proceeding to Console.ReadKey() in my main method.</p>
  
  <p>What's happening is that DownloadPage fires, but after displaying "Would you like to save this to a .txt file? [Y/N]", the program ends after typing any key. I originally tried the entire method inside of GetPageHTML, but it keeps breaking as soon as I try to get user input.</p>
  
  <p>I'm still learning C# and I don't know how to approach the problem and correct it. Can anyone help?</p>
  
  <pre><code>using System;
  using System.IO;
  using System.Net.Http;
  using System.Text.RegularExpressions;
  
  namespace Programming_Challenge_4
  {
      class Program
      {
          static void Main(string[] args)
          {
              Console.Write("Enter URL: ");
              string url = Console.ReadLine();
  
              GetPageHTML(url);
              Console.ReadKey();
          }
  
          static async void GetPageHTML(string _url)
          {
              try
              {
                  using (HttpClient client = new HttpClient())
                  using (HttpResponseMessage response = await client.GetAsync(_url))
                  using (HttpContent content = response.Content)
                  {
                      string result = await content.ReadAsStringAsync();
                      string title = Regex.Match(result, @"&lt;title&gt;\s*(.*?)\s*&lt;/title&gt;").Groups[1].Value;
                      Console.WriteLine("Downloading HTML...\n\nTitle: {0}\n\n{1}\n\n", title, result);
                      DownloadPage(result);
                  }
              }
              catch (Exception)
              {
                  Console.WriteLine("There was an error reading the url \"{0}\".", _url);
              }
          }
  
          static void DownloadPage(string _html)
          {
              Console.WriteLine("Would you like to save this to a .txt file? [Y/N]");
              string saveFile = Console.ReadLine(); // CODE IS BREAKING HERE!
  
              if (saveFile.ToUpper() == "Y")
              {
                  Console.Write("Please provide a file name: ");
                  string name = Console.ReadLine();
  
                  using (StreamWriter writer = new StreamWriter(name + ".txt"))
                  {
                      writer.Write(_html);
                      writer.Close();
                  }
  
                  Console.WriteLine("HTML has been saved to {0}.txt!", name);
              }
          }
      }
  }
  </code></pre>