私は現在、CF.NETを使用してWindows Mobileに小さなアプリケーションを作成しています。.net Windows Mobileのメモリ不足例外 - この問題を解決するには?
このアプリケーションの動作は電子メールアプリケーションと非常に似ています。つまり、POP3を使用して、メールサーバーアカウントからメッセージをダウンロードし、MIMEツールを使用して処理するためにストレージカードに保存します。
特定の時点でOutOfMemory例外が発生するため、大きな問題が発生しました。私は先日、here on SOに掲載された次の質問と回答を読んで、これに関するいくつかの面白いことを見つけました。添付ファイルが4-5MB(mp3-songs)になる可能性があるので、重大な問題があることを認識しています。しかし同時に、Pocket Outlookは、問題なく(WIFI接続を使用して)最大4〜5MBのMP3曲をダウンロードできるので、それを行う方法が必要です!
現時点では、ダウンロードバッファ(文字列に変換)を単純な文字列変数に保存しています。私はバッファの内容をstringbuilderに追加しようとしましたが、私はまだOutOfMemory例外を受け取ります。
私はこの問題を克服するためにどのような戦略/手法を採用できますか?
クライド:Thx。私は "チャンク"メソッドを採用する必要があります。私はいくつかのコード例を見つける方法を試します。私は、バッファの内容をファイルに保存し、バッファをクリアするなどと想像します。正しい? – moster67
実際にPOPプロトコルをどのように行っているかによって異なります。生の接続を作成してテキストを送受信している場合は、添付ファイルをダウンロードしている部分にアクセスして、一度に少ししてください。 – Clyde
しかし、サードパーティのライブラリを使用してPOPサーバーに接続する場合は、添付ファイルのダウンロードをどのようにサポートしているかを確認する必要があります。良いものはストリームとしてファイルをダウンロードするためのAPIを提供します。それ以外の場合は、新しいAPIが必要になります:-)。 – Clyde