5
private async void button1_Click(object sender, EventArgs e)
    {
        var cookie = webBrowser1.Document.Cookie;
        await
            Task.WhenAll(
                listBox1
                .Items
                .Cast<string>()
                .Select(async s =>
                {
                    var data = "action=relationship&user_id=" + s + "&relation=follow";
                    var req = WebRequest.Create("http://example.com") as HttpWebRequest;
                    req.Method = "POST";
                    req.ContentType = "application/x-www-form-urlencoded";
                    req.ContentLength = data.Length;
                    req.Headers["cookie"] = cookie;
                    using (var sw = new StreamWriter(await req.GetRequestStreamAsync(), Encoding.ASCII))
                    {
                        sw.Write(data);
                        sw.Close();
                    }
                }));
        listBox1.Items.Clear();
    }

これを100万回試しましたが、毎回2回実行されます。そして、それを 2 回実行すると、想定どおりに実行されます。

リストボックスからアイテムを取得し、各アイテムを POST リクエストの一部として使用することになっています。それが完了すると、リストボックスがクリアされます。

誰かが何が悪いのか説明できますか?

4

2 に答える 2

1

req.GetResponseAsync()実際にリクエストを送信するには、を呼び出す必要があります。

于 2013-08-23T02:09:04.360 に答える