[解決済み】C#アプリケーションを適切に終了させる方法は?
質問
C#で作成した公開アプリケーションを持っています。問題は、赤い終了ボタンをクリックしてメインフォームを閉じるたびに、フォームは閉じますが、アプリケーションが閉じないことです。私が作ったアプリケーションがスムーズに動作していることを期待してコンピュータをシャットダウンしてみると、たくさんの子ウィンドウに襲われました。
MessageBox
アラートを表示します。
試してみた
Application.Exit
が、やはりすべての子ウィンドウやアラートを呼び出してしまうので、どのように
Environment.Exit
と、どの整数を入れればいいのか。
ちなみに、私のフォームでは
formclosed
または
form closing
イベントを使ってアプリケーションを閉じます。
this.Hide()
関数があります。これは、私のアプリケーションが現在どのように動作しているかに影響しますか?
解決方法は?
MSDNより。
すべてのメッセージ・ポンプに終了するよう通知し、メッセージ処理後にすべてのアプリケーション・ウィンドウを閉じます。これは Application.Run (WinForms アプリケーション) を呼び出した場合に使用するコードです。このメソッドは、すべてのスレッドで実行中のメッセージループを停止し、アプリケーションのすべてのウィンドウを閉じます。
このプロセスを終了し、基盤となるオペレーティング・システムに指定された終了コードを与えます。これは、コンソール・アプリケーションを使用しているときに呼び出されるコードです。
この記事 Application.ExitとEnvironment.Exitの比較 は、良いヒントを指し示しています。
を判断することができます。
System.Windows.Forms.Application.Run
が呼び出されたことを確認するために
System.Windows.Forms.Application.MessageLoop
プロパティがあります。もし true ならば、Run が呼び出され、以下のように WinForms アプリケーションが実行されていることが想定されます。
if (System.Windows.Forms.Application.MessageLoop)
{
// WinForms app
System.Windows.Forms.Application.Exit();
}
else
{
// Console app
System.Environment.Exit(1);
}
関連
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み] 関数を終了するには?
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] 辞書を繰り返し使用するには?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] Bashスクリプトで、ある条件が発生したらスクリプト全体を終了させるにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み] エンティティタイプ ApplicationUser は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。