これまでのところ、「タスクベースの操作を生成する」を使用して VS2012 にサービス参照をインポートすることは機能していないようです。グレーアウトしています。
WPF の新しいプロジェクトでのテストは正常に動作しています。タスク ベースまたは非同期操作のいずれかを選択できます。
非同期呼び出しをタスクにラップする簡単な方法はありますか?
これまでのところ、「タスクベースの操作を生成する」を使用して VS2012 にサービス参照をインポートすることは機能していないようです。グレーアウトしています。
WPF の新しいプロジェクトでのテストは正常に動作しています。タスク ベースまたは非同期操作のいずれかを選択できます。
非同期呼び出しをタスクにラップする簡単な方法はありますか?
非同期呼び出しをタスクにラップする簡単な方法はありますか?
例WebClient.DownloadStringCompleted
public static class WebClientAsyncExtensions
{
public static Task<string> DownloadStringTask(this WebClient client, Uri address)
{
var tcs = new TaskCompletionSource<string>();
DownloadStringCompletedEventHandler handler = null;
handler = (sender, e) =>
{
client.DownloadStringCompleted -= handler;
if (e.Error != null)
{
tcs.SetException(e.Error);
}
else
{
tcs.SetResult(e.Result);
}
};
client.DownloadStringCompleted += handler;
client.DownloadStringAsync(address);
return tcs.Task;
}
}
使用法:
async void DownloadExample()
{
WebClient client = new WebClient();
await client.DownloadStringTask(new Uri("http://http://stackoverflow.com/questions/13266079/"));
}