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
다음과 같은 블록 :
using (var con = new MySqlConnection(/*connection string*/))
{
con.Open();
//do stuff
// con.Close(); //don't need this it will be closed automatically*
}
(*보다)
아니요, 귀하의 질문의 코드는 충분하지 않습니다. 쿼리가 예외를 던지면 적시에 닫지 않으며 쓰레기 수집가가 눈에 띄게 될 때까지 매달려있을 것입니다.
a using
다른 사람이 표시된대로 또는 최소한의 최소한으로 시도/마침내 구조로 포함합니다.
나중에 정리하는 데 필요한 리소스를 사용하는 클래스는 일반적으로 구현합니다. idisposable 상호 작용. 이는 리소스를 자유롭게 사용하는 데 사용할 수있는 Dispose ()라는 함수를 제공한다는 것을 의미합니다.
일회용 객체의 경우 사용할 수 있습니다 사용 성명:
using ( SomeDisposableClass c = new SomeDisposableClass() ) {
// ... your code here
} // c.Dispose() automatically called here, freeing up resources
클래스가 올바르게 코딩 된 경우 데이터베이스 연결, 열린 파일 핸들 등이 Dispose () 함수의 모든 리소스를 확보해야합니다.
이는 MySQL이 Dispose ()의 데이터베이스에서 연결을 끊을 수 있음을 의미하므로 C.close ()를 명시 적으로 호출 할 필요가 없지만 항상 문서를 확인하여 확인하십시오.
제휴하지 않습니다 StackOverflow