我想为Windows Phone 7.5开发一个收音机应用程序。我创建了一个webclient,它从远程服务器下载一个字符串,其中包含歌曲的标题和其他信息。然后将字符串传递给文本块。一切似乎都运转良好,但有一点问题。包含该字符串的远程文件经常更新。所以我想保持我的文本块更新。我做了一个计时器,每5秒下载一次字符串,逻辑上它应该更新文本块。问题是尽管远程文件正在更新,它仍会继续下载相同的字符串。为什么呢?
DownloadTitle.cs:
class DonwloadTitle
{
public string ResultText { get; set; }
public void DownloadStringTitle()
{
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress=true;
worker.WorkerSupportsCancellation=true;
worker.RunWorkerAsync();
worker.DoWork+=worker_DoWork;
}
void worker_DoWork(object sender, DoWorkEventArgs e)
{
WebClient HitClient = new WebClient();
HitClient.Encoding = System.Text.Encoding.UTF8;
HitClient.DownloadStringCompleted += HitClient_DownloadStringCompleted;
HitClient.DownloadStringAsync(new Uri("http://air-online2.hitfm.md/status_hitfm.xsl"));
}
void HitClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
ResultText = e.Result.Substring(167);
}
}
我在C#中为Windows桌面尝试了这个算法并且它有效。但对于Windows手机没有。
答案 0 :(得分:0)
尝试设置缓存策略:
RequestCachePolicy policy = new RequestCachePolicy( RequestCacheLevel.NoCacheNoStore);
HitClient.CachePolicy = policy;