一次发送多个帖子

Send Multiple Posts At A Time

我正在使用 SQL 查询来自我的数据库的 select 数据,并将返回的结果存储在 Dictionary<string, string> 中,然后我使用 foreach 循环和 Server.UrlEncode 创建一个 Querystring 这样的

foreach (var onetwo in privatedictionary) 
    dataToPost = onetwo.Key+"="+Server.UrlEncode(onetwo.Value)+"&";

然后一旦数据被编译成dataToPost我用HttpWebRequest发送数据

HttpWebRequest wbrq = (HttpWebRequest)WebRequest.Create("www.sitetohit.com");
{
  using (StreamWriter sw = new StreamWriter(wbrq.GetRequestStream()))
  {
    sw.Write(dataToPost);
  }
}

使用 Visual Studio 2015 一次发送多个帖子的方法是什么?

有多种方法,我体验过的最好的是波纹管:

Parallel.ForEach(privatedictionary, (dataToPost) =>
        {
            HttpWebRequest wbrq = (HttpWebRequest)WebRequest.Create("www.sitetohit.com");
            {
                using (StreamWriter sw = new StreamWriter(wbrq.GetRequestStream()))
                {
                    sw.Write(dataToPost);
                }
            }
        });

或者:

foreach (var dataToPost in privatedictionary)
        {
            Task.Run(async () =>
            {
                Foo foo = new Foo();
                await foo.BarAsync(dataToPost);
            });
        }

  //Asynchronous Handling
  public class Foo
{
    public async Task BarAsync(string dataToPost)
    {
        HttpWebRequest wbrq = (HttpWebRequest)WebRequest.Create("www.sitetohit.com");
        {
            using (StreamWriter sw = new StreamWriter(wbrq.GetRequestStream()))
            {
                await sw.WriteAsync(dataToPost);
            }
        }
    }
}

你可以使用这个:

Parallel.ForEach(privatedictionary, (onetwo) =>
        {
            var dataToPost = onetwo.Key + "=" + Server.UrlEncode(onetwo.Value) + "&";
            HttpWebRequest wbrq = (HttpWebRequest)WebRequest.Create("www.sitetohit.com");
            {
                using (StreamWriter sw = new StreamWriter(wbrq.GetRequestStream()))
                {
                    sw.Write(dataToPost);
                }
            }
        });