您好,我有一个函数,它将 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 个请求,而无需等待前一个请求完成? (我正在考虑将其穿线,但可惜我以前从未接触过它,因为我不知道从哪里开始。)
而不是使用GetResponse()
你可以使用的方法BeginGetResponse() http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.begingetresponse.aspx这是一个非阻塞调用。它需要一个回调来处理WebResponse
对象最终返回时。链接中的示例将使您很好地了解如何让主线程等待所有响应返回。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)