【发布时间】:2011-03-29 22:20:58
【问题描述】:
我正在使用以下代码下载 2 个 XML 文件:
public static string GetXMLString()
{
try
{
var request = (HttpWebRequest)WebRequest.Create(new Uri(@"http://www.example.com/data/xml/2.0/"));request.BeginGetResponse(r =>
{
try
{
var httpRequest = (HttpWebRequest)r.AsyncState;
var httpResponse = (HttpWebResponse)httpRequest.EndGetResponse(r);
using (var reader = new StreamReader(httpResponse.GetResponseStream()))
{
var response = reader.ReadToEnd();
xmlKolosej = response.ToString();
}
}
catch (Exception)
{
xml = null;
}
}, request);
}
catch (Exception)
{
xml = null;
}
return xml;
}
代码通过 2 种与上述方法相同的方法调用(从不同的 URI 下载 2 个不同的 XML 文件)。当 Windows Phone 页面加载时,这两种方法都会按顺序调用。有时,当我的无线连接不佳时,下载往往需要一段时间。 我想知道,如何检查 HttpWebRequest 是否已完成文件下载并启动 ProgressBar 直到完成下载? 您是否可以提出不同的方法来解决这个问题?
编辑 - 附加信息: 我需要有一个进度条的原因是因为需要数据才能让用户前进。如果用户尝试在应用程序中前进并且他的无线连接不良并且数据仍在下载,那么该方法当然会返回null。因此,进度条会在下载完成之前将用户锁定在应用之外。
【问题讨论】:
标签: c# windows-phone-7 download httpwebrequest progress-bar