2010-11-25 6 views
17

通常、アプリケーションを終了するのに通常Environment.Exit(code)を使用します。 (通常はボタンをクリックするだけですが)終了するには適切な方法、つまりメモリを解放するなどの方法がありますか?アプリケーションを正しく終了する方法

答えて

22

ただちにClose()すべてのアクティブ/既存のフォームとアプリケーションを終了する必要があります。

+0

OK。ありがとう。 'close()'はメモリーが解放されていることを確認しますか? – ghostdog74

+0

ガーベジコレクションはすべてを取り入れて処理する必要があります。 – Mario

+0

プロセスが終了すると、NTカーネルはクリーンアップされますが、.netではNTプロセスごとに多くの.netプロセスが存在するため、何が起こるかを知っています。リソースが.netで解放されるまでに、私は長い時間がかかりました。ネイティブアプリケーションで瞬時になるか、またはネイティブプロセスごとに1つの.netになります。 –

20

Application.Exit()あなたは変更の保存ダイアログを表示したい場合など、これをキャンセルすることができます。

+1

これを使用すると、closedイベントは呼び出されません。 –

1

コンソールアプリケーションでは、UI-Application Close()のすべてのアクティブなフォームでメインプログラムから戻ります。

管理対象オブジェクトのメモリは.NET Frameworkによって処理されるため、このことに注意する必要はありません。

IDisposable(データベース接続など)を実装するクラスを使用する場合は、不要になったときにDispose()を呼び出す必要があります(好ましい方法:using - ステートメント)。

これらのリソースを(フォームのプライベートメンバーのように)グローバルに使用する場合、フォームはIDisposableパターンを実装してClose()コールでこれらのリソースを解放する必要があります。詳細については、this articleを参照してください。

-1
me.close() 

これを試してください。 私はそれがうまくいくと思います。

+1

これは*フォーム*を閉じ、複数のフォームが開いている場合はプログラムを終了しません。 – cybermonkey

11
Application.Exit 
    End 

は、チャームのように動作します。 "Application.Exit"がすべてのフォームと呼び出しを閉じている間、 "END"はすぐに終了します。

ベストregrads、

0

次のコードは、Visual Basicのアプリケーションを終了するようにユーザに促すに使用されます。

Dim D As String 

D = MsgBox("Are you sure you want to exit?", vbYesNo+vbQuestion,"Thanking You") 

If D = vbYes Then 
Unload Me 
Else 
Exit Sub 
End If 
End 
End Sub 
関連する問題