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;
}