2009-06-29 17 views
1

私はC#で.NET Compact Framework 3.5でモバイルアプリケーションを開発しています。 メモリに状態を保存する必要があります。つまり、アプリケーションがクラッシュした場合、アプリケーションはクラッシュ前の状態に再起動する必要があります。アプリケーションのモバイル状態をメモリに保存する方法は?

フォームだけでなく、すべてのビジネスロジックも保存する必要があります。 このような機能を管理する簡単な方法があるかどうかを知りたい場合は、手がかりがありますか? シリアル化は正しいことですか?

ありがとうございました。

+1

*同じ*状態を復元してもアプリケーションがクラッシュすることはありませんか?そして、あなたが「より早期のきれいな状態」を意味するならば、あなたはトランザクションデータベースを見てはいけませんか? – reto

+0

良い質問です!実際、この問題は主に、ユーザーが手動でアプリケーションをシャットダウンしたときなどに発生します。私は、トランザクションナルデータベースは、このアプリケーションのための残虐であると思う。 – OutOfBound

答えて

1

まず、クラッシュ後に状態が失われるため、状態をRAMに保存しないでください。代わりに、ストレージクラッシュのような不揮発性メモリーを使用する必要があります。この種の媒体への書き込みは遅いので、それに応じて行動する必要があります。

回復アプリケーションを搭載したデバイスがいくつか見られました。これは、一定期間ごとにRAMの内容全体をフラッシュに複製するように設定できます。ハードリセットの後、デバイス全体がどこにあったかを知ることができます(少なくともRAMが複製される直前)。

おそらく、この種のものはあなたにとって過度のものです。あなたが言ったように、すべてのオブジェクトをシリアライズし、それらを定期的にフラッシュにコピーする方が簡単かもしれません。重複するものとそうでないものは、あなたの責任になります。また、以前の状態でアプリケーションを初期化するのはあなたの責任でもあります。

関連する問題