本当の質問ではありませんが、関連しています。私のアプリは、メインフォームの終了イベントでその設定を分離されたストレージにシリアル化します。いくつかのエッジケースを除いて、それはうまく機能します(シャットダウンの1%のように、空の壊れたファイルになります)。これは期待されていますか?
ここで本当の質問:C#またはJavaデスクトップアプリでシリアル化を処理するときの一般的なパターンは何ですか?アプリの終了を待つ必要がありますか?タイマーを使用して、特定の間隔でシリアル化を保存しますか?
本当の質問ではありませんが、関連しています。私のアプリは、メインフォームの終了イベントでその設定を分離されたストレージにシリアル化します。いくつかのエッジケースを除いて、それはうまく機能します(シャットダウンの1%のように、空の壊れたファイルになります)。これは期待されていますか?
ここで本当の質問:C#またはJavaデスクトップアプリでシリアル化を処理するときの一般的なパターンは何ですか?アプリの終了を待つ必要がありますか?タイマーを使用して、特定の間隔でシリアル化を保存しますか?
最も堅牢な解決策として、変更時に設定を保存することをお勧めします。また、終了時に保存する可能性もあります。設定が急速に変化するクレイジーな状況にある場合を除きます (ただし、それはありそうもないことです)。
音量が大きい場合を除き、設定が変更されるたびに保存する必要があります。
ここで最も重要な問題は、破損したファイルです。一時ファイルに保存し、シリアル化が完了したら、すばやくアトミックな操作でファイルを交換する必要があります。何か問題が発生した場合は、ファイルの古いコピーを読み取ることができます。