以下は、私たちがアプリケーションを終了することが可能な方法がありますこれらの3つの方法の違いは、それぞれを使用する場合ですか?のWinforms:</p> <ol> <li><code>Enviroment.Exit(0)</code></li> <li><code>Application.Exit()</code></li> <li><code>Form.Close()</code></li> </ol> <p>何:Form.Close
答えて
適切な方法はApplication.Exit()
です。 Documentationによれば、すべてのメッセージループを終了し、すべてのウィンドウを閉じて、フォームに(Form.OnCloseなどで)クリーンアップコードを実行する可能性を与えます。
Environment.Exit
は、プロセスを強制終了します。何らかの形が例えば保存されていない変更を保存する必要があるかどうかをユーザーに確認する機会はありません。また、リソース(データベース接続など)が正しく解放されず、ファイルがフラッシュされないなどの問題が発生する可能性があります。
Form.Close
これはフォームを閉じます。他のフォームが開かれている場合(アプリケーションの将来のバージョンではないかもしれませんが)、アプリケーションは終了しません。
マルチスレッドを使用すると、Application.Exit()
はスレッドを終了しないため、GUIが終了してもアプリケーションはバックグラウンドで動作し続けます。したがって、主な機能(つまり、Program.Main()
)またはメインフォームのOnClose
イベントのいずれかで、スレッドを削除するための対策を講じる必要があります。
+1のドキュメント参照 –
プロセスが終了しないようにスレッドにIsBackgroundプロパティを設定できます。 –
ファイルのフラッシュについて本当に真実はありますか?プロセスが強制終了されると、OSは既存のすべてのハンドルを閉じて、ハンドルもフラッシュします。 –
これらはすべて問題ありません。 しかしform.Close()
はあなたのアプリケーションを閉じません それはフォームを閉じ、その後 メインメソッドはint(終了コード)を返します。
あなたはexitcodesを使用してアプリケーションを終了するには Environmet.Exit(exitcode)
を使用するか、
- 1. Heredoc <<<または<<?
- 2. Gitは<<<<<<< HEADをファイルに追加し続けます
- 3. Ubuntuのリダイレクタ "<<<"?
- 4. PHP式<<< EOB
- 5. PHP <<< OUTとOUT;
- 6. 「<%:」は何をしますか?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>「<%:」何をん:行う
- 7. connection.Close()とconnection.Dispose()の違いは何ですか? <code>SQLiteDataReader</code>オブジェクトの</p> <ul> <li><code>Close()</code></li> <li><code>Dispose()</code></li> </ul> <p>同じ:
- 8. バーチャル<< operator
- 9. コンパイラエラー `<<"
- 10. std :: cout << xの間のdiffrenceは何ですか;とstd :: cout << x << std :: endl ;?
- 11. 私は2つの機能</p> <pre><code>void foo() { std::cout << 1 << std::endl; } void bar() { std::cout << 2 << std::endl; } </code></pre> <p>をお持ちの場合は2個の関数のC++
- 12. "位置:絶対":</p> <pre><code><html> <body> <div id="outer"><div id="inner"></div></div> </body> <html> </code></pre> <p>とそのCSS:CSS
- 13. 印刷<<< PHPのHTML?
- 14. PHP「<<< TEXT一部のコンテンツTEXT」
- 15. PHP:<<< PHPでのob_start
- 16. fstreamのは、<<
- 17. <TextView /> OR <TextView></TextView>
- 18. 印刷<<< END;質問
- 19. <thead><th>と<tbody>
- 20. WPFのHorizontalAlignmentとHorizontalContentAlignmentの違いは何ですか? WPFのテキストボックスに</p> <ul> <li><code>HorizontalAlignment="Stretch"</code></li> <li><code>HorizontalContentAlignment="Stretch"</code></li> </ul> <p>:
- 21. TensorFlow演算子のオーバーロード</p> <pre><code>tf.add(x, y) </code></pre> <p>とTensorFlowで</p> <pre><code>x + y </code></pre> <p>の違いは何
- 22. XSD <element><complexType><sequence>対<element><sequence>
- 23. self.class_eval << DEF ... DEF
- 24. デバッグ__NSAutoreleaseFreedObject():</p> <p><em>*</em> __NSAutoreleaseFreedObject():
- 25. アトム - <kbd>ALT</kbd> - - アトムで<kbd>=</kbd>
- 26. Tortoise svn <<<<をファイルに追加しています!
- 27. THREE.Camera.prototype.lookAt</ <() -</ <はどういう意味ですか?
- 28. cout << "привет";またはwcout << L "привет";
- 29. ?</p> <pre><code>#include <asm/tlb.h> </code></pre> <p><strong>tlb.h</strong>が<code>include/asm-generic/tlb.h</code>か<code>arch/arm/include/asm/tlb.h</code>です:MM/memory.cで
- 30. メイキングこの</p> <p><code><ol> <li>first</li> <li>second</li> <li>third</li> </ol></code></p> <p>と<strong>高度なレイアウト・エディタ</strong>(編集への以降のスイッチのように、WordPressの高度なレイアウトエディタ
メイン・メソッドで終了コードを返します。これは、重複した問題ではないことをしたい場合。私はアプリケーションを終了するためにどちらを使用するか尋ねていません。私は同様の操作を実行するので、これらのメソッドの違いを尋ねています。 –