2009-03-09 7 views
1

(私はHibernateまたはNHibernate ORMについて話しません)アプリケーションを休止状態にする方法はありますか?

Windows OS(およびいくつかのLinuxバージョン)には、状態を保存してマシンをシャットダウンするための「休止状態」オプションがあります。その後、再起動すると、以前に保存された状態から再開できます。

アプリケーションを単独で休止させる方法はありますか?私はその状態を保存してアプリケーションを閉じたいと思っています。後でアプリケーションを起動すると、以前に保存された状態から再開する必要があります。

サードパーティのツールがありますか?サードパーティのライブラリを使用してアプリケーションに機能を追加できますか?

編集:タブ付きのインターフェイスと50以上の入力コントロールを持つ.Net WinFormアプリケーションがあります。私はアプリケーションをシャットダウンするための解決策が必要で、テキストボックスで同じ値で後で再起動します。すべてのテキストボックスの値を保存して復元するルーチンを書くことができます。しかし、私はいくつかの汎用的な方法を探しています。これはどんなアプリケーションでも使えます。

+0

.org/wiki/Persistence_%28computer_science%29あなたが開発しているアプリケーションで一種のhybernationが必要な場合。 –

答えて

1

OSを「アプライアンス」としてアプリケーションをバンドルし、VMWareのようなものを使用して仮想マシン全体を休止することができます。

また、Smalltalkを使用することもできます。

(どちらのアプローチも既存のアプリケーションに簡単にプラグインできるものではありませんが、お望みのものは「プラットフォームレベルのサポート」と呼ばれるようです)。

0

あなたが所有するメモリを含むオブジェクトはそれほど難しくありません。問題は、OSが所有するリソース(ウィンドウ、スレッド、セマフォなど)にあります。これらのOS所有リソースの状態を保存/復元したものを書くことができますが、それらを破壊/再作成する必要があります。

これを実行する目標は何ですか?

0

これのためのフレームワークはありません。これを実現するシンプルな方法は、シリアライズ可能なオブジェクトにデータを格納し、ファイルにシリアル化してから後でシリアル化することです。

これは難しいことではありません。それはかなり一般的です - シリアル化可能なデータを直列化するためには、いくつかの行を書く必要があります。

もっと複雑なものについては、以前カーソルがあった場所などの状態は、ユーザーがアプリケーションを終了しようとしたときに直列化可能オブジェクトにプッシュされ、アプリケーションをロードするときに手作業でプッシュバックされます。

...しかし、ユーザーがそのようなことに気をつけることはないかもしれないが、おそらくちょうどそのデータが元の状態に戻ることに気を付けるだろう。 //en.wikipedia:あなたは、HTTPで見たいと思うかもしれません将来的に

マイクロソフトMED-Vのアプリケーションの仮想化は、そのようなことを行うことができるかもしれない
1

、OS自体に多くのアプリケーションの仮想化機能を持っていいだろう