2

WebClient.OpenReadAsync メソッドを使用して、Windows Phone 7 の Web サーバーからデータをダウンロードしています。ある時点で、OpenReadCompleted イベントが発生し、データの読み取りに使用できるストリームが与えられます。

この場合、データは既にダウンロードされていると見なすことができますか? つまり、ストリームを最後まで読み取るのはローカル操作であり、それ以上のネットワーク アクセスは必要ありませんか? それとも、ストリームを読み取ると実際にデータのダウンロードがトリガーされますか?

データが既にダウンロードされている場合、データはどこに保存されますか? データが膨大でどこにも収まらず、その一部だけを読み取りたい場合はどうすればよいですか?

ドキュメントでそれに関する情報を見つけることができません。

4

1 に答える 1

2

この場合、データは既にダウンロードされていると見なすことができますか?

いいえ、それを想定することはできません。このイベントは、リソースを含むストリームを開く非同期操作が完了すると発生します。ストリームの読み取りを開始すると、このストリームはネットワーク ソケットから読み取られ、ネットワーク I/O 操作が発生します。

データが既にダウンロードされている場合、データはどこに保存されますか?

このイベントが発生した時点では、データはどこにもダウンロードされません。したがって、サーバーから返されたデータが巨大な場合、それをメモリ内のチャンクで読み取り、他のストリーム (ファイルやデータベースなど) に書き込むのはあなた次第です。

于 2012-12-29T15:15:58.390 に答える