如何按顺序下载mp3文件?

时间:2014-02-03 17:38:09

标签: c# windows-phone-8

我正在使用_webClient.OpenReadAsync(myURI)下载文件,它可以正常下载文件。我想从0-20开始按顺序下载文件。应该下载第一个文件,然后是第二个,依此类推。 我在下面使用下载,但它不是我所期待的。

foreach (string s in files)
    _webClient.OpenReadAsync(new Uri(string.Format("{0}{1}", selectedReciter.DownloadURL, s)));

如果第一个文件被下载,那么for循环应该只继续到第二个,第三个等,然后是第二个,然后是第三个,依此类推。

3 个答案:

答案 0 :(得分:1)

您正在打开用于异步读取 的网址,该字词意义重大。当文件开始读取时,该功能将无法完成,但它会更快地返回。

你需要做的是await结果,如下所示:

async Task DownloadAll(List<string> addresses)
{
    var wc = new WebClient();
    foreach(var address in addresses)
        await wc.OpenReadTaskAsync(address);
}

不要忘记首先添加NuGet包:Microsoft.Bcl.Async

答案 1 :(得分:0)

使用后台文件传输下载文件。后台文件传输允许您在应用程序停用或后台时以后台方式下载文件。

Here更多关于后台文件传输。 Here是如何使用后台文件传输的示例。

答案 2 :(得分:-1)

您可以使用阻止执行的同一方法的非异步版本,直到OpenRead流完成。