DownloadStringAsync不返回完整的字符串

时间:2013-09-04 15:38:41

标签: c# downloadstring

我从不同的地址下载了一堆字符串,我需要尽快下载它们。所以我使用了10个DownloadStringAsync和1个DownloadString。

简化代码如下所示:

    ...
    foreach(...)
    {
        using (WebClient client = new WebClient())
        {
            if (asyncworkers < 10)
            {
                client.DownloadStringCompleted += Done;
                client.DownloadStringAsync(uri);
                asyncworkers++;
            }else{
                string data = client.DownloadString(uri);
                ProcessData(data);
            }
        }
    }
    ...


private void Done(...)
{
    ProcessData(e.Result);
    asyncworkers--;
}

问题是e.Result中的Done不时完整。当我只使用DownloadStringDownloadStringAsync时,它很可能总是完成。 这是正常的,我只是在它不完整时重新下载它或者我写错了吗?如果它是错的,我将如何迫使它等待,直到10 DownloadStringAsync中的一个完成它的工作? 感谢。

0 个答案:

没有答案