title: Multiple web requests, start another request while waiting for response on last one. C#
body: <p>I am trying to do multiple web requests from websites that take a long time to load  the full response (really long log files). I want to implement a method that will continue to create web requests while waiting for the response of the other ones and speed the process. </p>
  
  <p>Tried to implement an async- await method but I don't think is creating simultaneous calls and  it's instead running synchronously. I am very confused in how to implement the async await, I looked at other similar questions but still not very clear, how could I fix this code to run async?<br>
  This is my code:</p>
  
  <pre><code>        public static async Task&lt;String&gt; MakeRequestAsync(String url)
      {
          String responseText = null;
  
              try
              {
                  HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                  request.Proxy = null;
                  WebResponse response = request.GetResponse();
                  Stream responseStream = response.GetResponseStream();
                  string sr = new StreamReader(responseStream).ReadToEnd();
                  response.Close();
                  responseStream.Close();
                  responseText = sr;
              }
  
              catch (Exception e)
              {
                  Console.WriteLine("Error: " + e.Message);
              }
          return responseText;
      }
  </code></pre>
  
  <p>..</p>
  
  <pre><code>private void button_test_Click(object sender, EventArgs e)
      {
           for (int n = 0; n &lt; 5; n++)  //multiple requests
              {
                  String a = AsyncTest().Result;
              }
  
      }
  
      private async Task&lt;String&gt; AsyncTest()
      {
          String b = await MakeRequestAsync(url);
          return b;
      }
  </code></pre>
  
  <p>Also any suggestions on how could I speed this process would be great.</p>