3

WP7 プロジェクトで非同期 Web 要求に System.Threading.Task ライブラリを使用したいと考えていました。ただし、WP7 (私は信じています) では、http 要求に HttpWebRequest クラスを使用する必要があります (私のアプリがよく行うことです)。HttpWebRequest クラスには BeginGetResponse メソッドしかなく、コールバック パラメーターを渡す必要があるため、古い非同期プログラミング モデルを強制的に使用する必要があります。

WP7 を使用して現代性を入力する方法はありますか、または HttpWebRequests とコールバックで立ち往生していますか?

更新 Jon は、Task.Factory.FromAsync を使用して APM コードを TPL に変換する適切な方法を見つけることについて、良い方向性を示してくれましたが、私は Task.Factory.FromAsync の使用に本当に苦労しています。最初のパラメーターは IAsyncResult で、BeginGetResponse または BeginGetRequest メソッドになると思います。しかし、私が読んだドキュメンテーションが通常示唆する 2 番目のパラメーターは、終了メソッドである必要がありますが、Func です。HttpWebRequest の EndGetRequest メソッドと EndGetResponse メソッドは Stream を返します ... その時点で、私は道に迷ってしまいます。

4

1 に答える 1

4

一般に、開始/終了メソッドのペアからTaskFactory.FromAsyncを構築するために使用できます。Task<T>

それが WP7 バージョンの TPL でサポートされているかどうかはわかりませんが、ここから始めます。

「TPL と従来の .NET Framework 非同期プログラミング」も参照してください。

于 2012-11-28T15:09:23.773 に答える