Hi i have a function that passes url Get parameters to a php file on a webserver and waits for a response from the file (normally takes 10-20 seconds). I want to put this inside a loop because I have to send these Get requests to about 5 different php files at once but when i try to add it to a loop the function makes the loop wait until the file returns the response before it will go on to the next one.
    public string HttpGet(string URI, string Parameters)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI + Parameters);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader resStream = new StreamReader(response.GetResponseStream());
          return resStream.ReadToEnd().Trim();
    }
    private void SendCommand()
    {
        for( int i = 0; i <= 4; i++)
        {
            AddRTB(HttpGet(url, paramater));
        }
    }
Is there a way that i could send the all 5 requests at once without waiting for the previous to finish? (i was thinking about threading it but alas i never touched it before is i don't know where to start.)
Instead of using the GetResponse() method you could use the BeginGetResponse() which is a non-blocking call.  It takes a callback that can then handle the WebResponse object when it finally returns.  The example in the link will give you a good idea of how to have the main thread wait for all the responses to return. 
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With