問題タブ [application-shutdown]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
546 参照

c++ - 制御されたアプリケーションのシャットダウン戦略

私たちの(WindowsネイティブC ++)アプリは、スレッド化されたオブジェクトとマネージャーで構成されています。それはかなりよく書かれており、マネージャーオブジェクトがミニオンのライフサイクルを制御しているのを見るデザインです。さまざまなオブジェクトがイベントをディスパッチおよび受信します。一部のイベントはWindowsからのものであり、一部は自家製です。

一般に、スレッドの相互運用性を十分に認識している必要があるため、Win32のクリティカルセクションやセマフォなどを使用した手動の同期手法を使用します。ただし、イベントハンドラーの再入可能性などが原因で、シャットダウン中にスレッドのデッドロックが発生することがあります。

中央コントローラーからシャットダウンイベントに登録し、それに応じて実行動作を変更するすべてのオブジェクトのように、これを開発しやすくするために実装できる適切なアプリシャットダウン戦略があるかどうか疑問に思います。これはあまりにも素朴ですか、それとももろいですか?

Microsoftの並列パターンライブラリなどを使用するようにアプリ全体を書き直すことを規定していない戦略を希望します。;-)

ありがとう。

編集:

多くのスレッドとイベントが常に発生している複雑なアプリでオブジェクトのライフサイクルを制御する方法を求めていると思います。Giovanniの提案は明白なものですが(私たち自身の手作業で)、アクティブオブジェクトを正しい順序でクリーンにシャットダウンするには、さまざまな既製の戦略またはフレームワークが必要であると私は確信しています。たとえば、C ++アプリをIoCパラダイムに基づいて作成する場合は、独自のコンテナーを開発する代わりに、PocoCapsuleを使用できます。アプリでオブジェクトのライフサイクルを制御するのに似たものはありますか?

0 投票する
1 に答える
1083 参照

android - setOnClickListener - アプリケーションが予期せず停止しました

コードのボタンに setOnClickListener を使用するとすぐに、アプリケーションを起動すると、the application has stopped unexpectedly

これは私のメインページのコードです:

main.xml は次のようになります。

0 投票する
2 に答える
5755 参照

wpf - Application.Current.Shutdown(-1)がWPFアプリを閉じない

Windowsで認証されたユーザーがwpfアプリケーションの有効なユーザーであるかどうかを確認しています。

そうでない場合は、アプリケーションをシャットダウンする必要があります。ただし、Application.Current.Shutdown(-1)を実行した後でも、アプリケーションは正常に実行され続けます。

以下のリンクは、StartUpURIを削除する必要があることを示しています。しかし、app.xamlにはそのタグがありません。-> App.xaml.csからのWPFアプリケーションのシャットダウン

編集:- 私はAPP.XAML.CSにこのコードを持っています->

0 投票する
6 に答える
10485 参照

iphone - アプリケーションのシャットダウン後に変数を保存する方法は?

アプリケーションのシャットダウン後にいくつかの整数を保存し、アプリケーションを開いた後にそれらを復元したいのですが、これを行う最も簡単な方法は何ですか?

0 投票する
2 に答える
757 参照

delphi - すでにアンロードされたモジュールを呼び出すコードを見つける方法は?

典型的なアクセス違反が発生しました:

これは、プログラムの残りの部分がすでにシャットダウンしているときに作成されるスレッドで発生します。

System.FinalizeUnits例外発生時にメインスレッドが実行されています。

gdiplus.dllロードされたメモリ領域にアドレスが属していることがわかりました。

返されたハンドルLoadLibrary('gdiplus.dll')を呼び出さずにdprファイルに呼び出しを追加すると、問題は解決します。これにより、ファイナライズセクションの実行中にがアンロードされなくなります。FreeLibrarygdiplus.dll

プログラムのどの部分がアクセス違反につながるスレッドを作成しているのかを知るにはどうすればよいですか?

解放されたメモリスペースを呼び出すコードを識別する方法はありますか?

FastMMとmadExceptはほとんど役に立ちません。madExceptエラーレポートウィンドウが表示されますが、すぐに再び閉じられ、ログファイルは書き込まれません。

プログラムを分解することはできますが、それは簡単なアプリケーションではなく、ある種のデバッグ手法を使用してこれを解決したいと思います。

0 投票する
2 に答える
1104 参照

c# - クラスライブラリでアプリケーションシャットダウンイベントをサブスクライブする方法

一部のアプリケーションで使用されるクラスライブラリがあります。これには、ライブラリ内の別のプライベートクラスBの静的フィールドで外部使用するためのクラスAが含まれています。ユーザーアプリケーションは、ライブラリのクラスAのインスタンスを使用します。

アプリケーションがシャットダウンするので、クラスBでクリーンアップを実行したいと思います。ユーザーアプリケーションからのアクションなしで、クラスBでアプリケーションシャットダウンイベントをキャッチすることは可能ですか?

0 投票する
5 に答える
5056 参照

java - contextDestroyed() と addShutdownHook() の比較

現在、シャットダウンする前に Web アプリケーションでクリーンアップ タスクを実行するために実装ServletContextListenerおよび使用しています。ただし、同じ目的でcontextDestroyed()どのように使用できるかについて読んでいます。Runtime.addShutdownHook(Thread)

アンデプロイメント前にクリーンアップを実行するこれら 2 つの方法に違いはありますか? 機能性、効率性、および保守性の観点から、Web アプリケーションに適しているのはどれですか?

0 投票する
1 に答える
444 参照

java - Javaアプリケーションサーバーのインスタンスの突然のシャットダウンの考えられる原因

私は開発者であり、アプリサーバーの知識は、リソースのデプロイ、宣言、マッピングなどの基本にまで及びます。

私の最初のステップは、アプリとサーバーのログ(sysoutとsyserr)を調べて手がかりを見つけ、サーバーインスタンスがシャットダウンする前に最後に行ったことを確認することです。たとえば、ローカルにデプロイされたTomcatで、おそらくメモリの問題が原因で突然シャットダウンした場合、PermGenに関連するスタックトレースが表示されます。

私の質問は、シャットダウン前にログに問題が発生したという兆候がない場合、そこからどこに行くのですか?他にどのような場所を調べる必要がありますか?また、この突然のシャットダウンの考えられる原因は何ですか?

私の場合、これはWAS 6.1であり、複数のインスタンスがあり、1つのインスタンスのみが停止しました。死亡したこのインスタンスには、5つ以下の複数のアプリがあります。

0 投票する
2 に答える
2785 参照

delphi - アプリが終了したときにフォームが破棄される前に呼び出されることが保証されているDelphiイベントはありますか?

Delphi6Proを使用しています。アプリケーションが確実にシャットダウンしているが、フォームが破棄される前に発生するイベントが必要です。メインフォームのWndProc()でWM_QUITメッセージをトラップすることを考えましたが、WM_QUITメッセージが表示される前にフォームが破棄され始めたため、機能しませんでした。イベントのシャットダウンチェーンのこの時点でコードを実行するために使用できる標準のDelphiイベントがあるかどうか疑問に思いましたか?メインフォームのFormClose()イベントは起動が保証されておらず、FormDestroy()イベントが遅すぎるため、使用できません。何か案は?

0 投票する
1 に答える
858 参照

java - 非準拠の JVM が WindowClosing イベントを送信しない場合の回避策

さまざまな OS X バージョンの Apple JVM は、必要なときに WindowClosing イベントを生成しないという点で壊れているようです (たとえば、閉じるボタンをクリックしてアプリのメイン JFrame を閉じた場合)。

(最新の Apple Java アップデートでは、イベントを強制的に生成するプロパティを設定できますが、これは私が探しているものではありません)

私の問題は単純です。ユーザーがアプリを閉じたときに「ヒント」を表示したいと思います。ただし、(イベントが生成されないため) ユーザーがウィンドウを閉じたことを検出できません。

だから私はシャットダウンフックを使うことができると思った:

ただし、シャットダウン フックから JFrame を作成することには問題があるようです。シャットダウン フックが呼び出されると、EDT が既になくなっているようです。

私はいくつかのことを試しましたが、何も意味がないようです: 私の「ヒント」JFrame がすべて灰色のまま (シャットダウンフック以外の場所から呼び出されたときに正常に動作しているにもかかわらず) や、プログラムがすぐに終了するなどです。ラッチを使用して、シャットダウン フックからのラッチを待機しようとしましたが、EDT がもう存在しないかのようです。

私は現在、回避策としてツールチップを表示するためだけに 2 つ目の Java アプリを生成することを真剣に検討していますが、それは少しやり過ぎだと思います (ただし、少なくとも機能するでしょう)。

シャットダウン フックからウィンドウを作成し、EDT で何かを呼び出そうとした人はいますか?注意すべき問題はありますか? (非常に長い間知られている Apple VM のバグのため、OS X でウィンドウを閉じるイベントを確実にキャッチできないことを思い出してください)。