c# - 使用 C# 的异步 WebRequests

标签 c# multithreading http-get

您好,我有一个函数可以将 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/

相关文章:

android - 如何在 View 类中设置定时器?

node.js - NodeJs中无法接收POST数据

c# - MVC - 设置 SelectList 的选定值

c# - 保存 RichTextBox 的文本

c - 同时运行的自旋锁

ruby-on-rails - Rails : Sidekiq Workers must be thread-safe. 是什么意思?

c# - 如何在 Java 中使用 C# 数据集?

c# - 使用c#写入excel单元格

c# - 如何将复杂类作为参数传递给 httpget

python - 如何在 python 中使用带有代理身份验证的 requests.post()?