1

私はこれが可能でさえあるとは思わない。そのため、アプリは実行中であり、ユーザーはタスクマネージャーを介してプロセスを終了することを決定します。process.kill中にデータを保存する方法/アクションはありますか?あるとは思えませんが、尋ねなければなりませんでした。

また、ユーザーがPCをシャットダウン/再起動した場合(Windows Update /手動再起動の場合のように)、アプリはどのようなアクションを実行しますか?Window_Unloaded?この2番目の質問では、アプリが「再起動する場合は、このアプリを強制終了する」状況として表示されないようにし、必要なデータを保存する方法を見つけたいと思います。

あなたの2セントは大歓迎です!

4

2 に答える 2

3

2 つのプロセスがなければ、やりたいことを実行することはできません。一方が他方のステータスを監視し、終了時に何らかの処理を行います。ウォッチドッグ プロセスは、GUI のないWindows サービス アプリケーションである可能性があります。

通常のシャットダウンが発生すると、Windows は開いているすべてのアプリケーションに終了メッセージを送信します。メッセージの受信時にいくつかのコード (通常はハウスキーピングのもの) を実行して、アプリケーションを終了できます。そうしないと、アプリケーションを強制終了するかどうかを Windows がユーザーに自動的に尋ねます。

強制シャットダウンは、すべてのプロセスを即座に強制終了します (特定の/予測可能な順序ではありません)。したがって、(簡単に)検出することはできません。

アプリケーション プロセスが強制終了されたときにデータが失われないように、必要なものはすべてできるだけ早く保存することをお勧めします。

于 2010-07-24T18:16:42.590 に答える
1

何かが実行中のアプリを終了させた場合、何もする機会がなく、死ぬだけです。すべてのデータが常に永続的な場所に保存されるようにアプリを変更すると、アプリが停止しても永続化されたデータが残ります。明らかに、これを設計する必要があります。次に、ユーザーが「保存」を行うと、「実際の」データストアにコミットします。

Windows が再起動しようとしている場合は、アプリにメッセージを送信する必要がありますが、これは処理できます。ただし、これがすべての GUI/コンソール/サービス タイプのアプリで機能するかどうかはわかりません。

于 2010-07-24T18:21:57.610 に答える