2012-05-06 24 views
1

アプリケーションを正しく閉じることの重要性は?
つまり、すべてのディスポーザブルオブジェクトのプロパティーコールDisposeを呼び出し、すべてのワーカースレッドに作業を終了するように通知します。WinFormsアプリケーションを「正しく終了」する

私はこれらのことに関する悪い習慣について読んできましたが、何がうまくいかないかについて具体的な例はほとんどありません。

Q:以下のもののいずれか、またはすべてをやってから発生する可能性のあるすべての問題があります。

  1. は、任意の使い捨てのオブジェクトにDisposeを呼び出すことはありません。 (プロセスが終了してもメモリリークを引き起こす可能性があります)
  2. Thread.Abort()を呼び出してスレッドを終了します。 (潜在的に何もしないことを無視して)
  3. Application.Exit()またはEnvironment.Exit(0)を呼び出してWinFormsアプリケーションを終了させますが、メインスレッドまたはワーカースレッドはまだ作業を終了していません。

編集:のアプリケーションが単独で完全に実行するように設計されており、他のアプリケーションとは独立して、また直接それに依存する他のアプリケーションが存在していると述べていると仮定しましょう。

答えて

2

漏れまたはより広範なシステムの問題については、上記のどれも重要ではありません。

しかし、多くの場合、悪いパターンや習慣は、コードの追加クライアントが追加されたり、時間の経過とともに他の調整が行われたりするなど、あなたが期待しない他の方法であなたを噛んでしまいます。

+0

アプリケーションが完全にスタンドアロンであると仮定すると、 – Acidic

+0

答えはまさに関連しています。プロセスが終了すると、Windowsはプロセスリソースをクリーンアップします。 –

関連する問題