0

Windows Phone アプリケーションを作成していますが、非常に大きな mp3 ファイルをダウンロードして、それらを分離ストレージに保存する必要があります。この作業のためのすべてのコードがあり、小さなファイルでテストしましたが、実際のファイルを使用し、デバッグ出力を使用してコードが何をしているかを監視すると、スレッドが実際に途中で終了していることに気付きましたダウンロードし、ファイルが実際にダウンロードを完了することはありません。

これが発生する理由はありますか? もしそうなら、これを防ぐために何ができますか?

4

2 に答える 2

2

どのくらい後にタイムアウトしますか? HttpWebRequest を使用してファイルをダウンロードする場合、デフォルトのタイムアウトは 100,000 ミリ秒 (100 秒) です。これは、挿入するだけで簡単に変更できます。

HttpWebRequest.Timeout = 10;

明らかに独自のタイムアウト(ミリ秒単位で!)を設定し、それをWebRequestに添付します:)

HttpWebRequest を使用していない場合は、何を使用しているかお知らせください。解決できるよう最善を尽くします :)

于 2012-11-26T00:10:49.313 に答える
0

WP の内部メモリとプロセス管理がこれを処理します。バックグラウンドOSで大量のデータをダウンロードするアプリからスレッドを生成した場合、それらのリソース(ほとんどの場合メモリ)が他のプロセスに必要になると、OSはそれを削除します。

ダウンロードの方法に応じて、次の 2 つのことを行うことができます。

  1. バッファーが特定のサイズに達したときに、IsolatedStorage にバッファー チャンクを定期的に保存し、スレッドのメモリ使用量を制限します。
  2. ダウンロード スレッドを BackgroundTask として実装します。これにより、「無限」の実行が可能になります。
于 2012-11-26T00:13:56.707 に答える