これは私がいつも不思議に思っていたものです。アプリケーションが終了すると、DB接続はすぐに終了しますか?
私はDB接続を使用するコードを書くたびに、私はいつも何らかの形で次の部分への処理の前に閉じていることを確認する必要があります。
しかし、そのコンストラクタで接続を開き、SaveボタンまたはCancelボタンに当たるまで閉じないChildWindowがある場合は、その後、アプリケーション全体が閉じられた場合、DB接続はすぐに終了しますか?または、タイムアウトを待つ必要があり、自動的に閉じますか?
EDIT:
だから私は自分のアプリケーションにすべてのエラーを記録するためのオープンなライブ接続を維持しようとしています:
public App()
{
ErrorHelper errorHelper = new ErrorHelper(); // Will open DB connection
AppDomain currentDomain = AppDomain.CurrentDomain;
currentDomain.UnhandledException += new UnhandledExceptionEventHandler(currentDomain_UnhandledException);
}
/// <summary>
/// For catch all exception and put them into log
/// </summary>
void currentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
errorHelper.WriteError(e.ExceptionObject as Exception);
}
私は毎回、単一のエラーを記録接続を開く方法が好きではないので私はいつもコネクションを開いておきたいと思っています。これはOPの説明と同様です。この状況では、常に接続を開いたままにします。しかし、DB接続は終了後即座に終了しますか?
@Oded、私は既存のアプリケーションの動作について何も仮定していません。 – mikerobi
リクエストに応じて、私は働いているものをパットしました。しかし、mikerobiのように、私はアプリケーションを終了する動作について知りたい。接続を確実に閉じるための回避策はありません。 –