C#でのMySQLデータベースに対してスレッドを閉じます
-
20-09-2019 - |
質問
C#でWindowsフォームからMySQLデータベースに対してクエリを実行した後にトレッドを閉じるの適切な方法は何ですか?
このような十分なシンプルなオープンに近いですか?
conn.Open();
//querycode
conn.Close():
解決
使用してみてください。
using(MySqlConnection conn = new MySqlConnection(connString))
{
conn.Open();
} // conn is automatically closed and disposed at the end of the using block
他のヒント
いいえ、あなたの質問のコードは十分ではありません。あなたのクエリが例外をスローした場合は、適時に)それを(閉じませんし、それがガベージコレクタの通知、それまでぶら下がっ残されます。
あなたは他のユーザーによってまたはトライ/最終的な構造で、それ包む最低限に示すようにusing
ブロック内のオブジェクトを囲む必要があります。
あなたは通常、のIDisposableをのインターフェイスを実装し、その後クリーンアップする必要があるリソースを使用し、
クラス。これは、それがリソースを解放するために使用することができるのDispose()という関数を提供意味ます。
使い捨てオブジェクトの場合は、のの文を使用してを使用することができます
using ( SomeDisposableClass c = new SomeDisposableClass() ) {
// ... your code here
} // c.Dispose() automatically called here, freeing up resources
クラスが適切にコード化されている場合は、、それはすべてのリソースを解放しなければならない - その廃棄()関数内 - などのデータベース接続、開いているファイルハンドル、それも。
これは、MySQLは、おそらくのDispose()でデータベースから切断することを意味し、あなたはおそらく、明示的c.Close()を呼び出す必要はありません - 。必ずするのではなく、常にドキュメントをチェック
所属していません StackOverflow