您好,我有一个函数可以将 url Get 参数传递给网络服务器上的 php 文件并等待文件的响应(通常需要 10-20 秒)。我想把它放在一个循环中,因为我必须一次将这些 Get 请求发送到大约 5 个不同的 php 文件,但是当我尝试将它添加到一个循环中时,该函数使循环等待,直到文件返回响应,然后它才会去到下一个。
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));
}
}
有没有一种方法可以一次发送所有 5 个请求,而无需等待前一个请求完成? (我正在考虑对它进行线程处理,但可惜我以前从未接触过它,我不知道从哪里开始。)
最佳答案
您可以使用 BeginGetResponse()
而不是使用 GetResponse()
方法这是一个非阻塞调用。它需要一个回调,然后可以在它最终返回时处理 WebResponse
对象。链接中的示例将让您很好地了解如何让主线程等待所有响应返回。
关于c# - 使用 C# 的异步 WebRequests,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799242/