即使我正在创建 WebClient 的新实例,并遵循标准程序以确保 WebClient 被 GC 删除,这甚至无关紧要:webclient 从我的服务器检索它之前检索的内容,并且只有重新启动应用程序才会它允许从我的服务器检索新内容。内容是一个简单的文本文件字符串,没有花哨的缓存,因为它在 WinRT 上运行得很好。
这是一个谜,因为我正在尝试制作一个 ChatBox;我需要刷新以获取新内容,但 WebClient 返回它第一次检索到的内容。
我的代码:
public async Task<string> RetrieveDocURL(Uri uri)
{
return await DownloadStringTask(new WebClient(), uri);
}
/*
public async Task<byte[]> RetrieveImageURL(string url)
{
return await _webClient.GetByteArrayAsync(url);
}
* */
private Task<string> DownloadStringTask(WebClient client, Uri uri)
{
var tcs = new TaskCompletionSource<string>();
client.DownloadStringCompleted += (o, e) =>
{
if (e.Error != null)
tcs.SetException(e.Error);
else
tcs.SetResult(e.Result);
};
client.DownloadStringAsync(uri);
return tcs.Task;
}