2010-03-24 4 views
2

나는 멀티 스레딩 개념을 사용하여 일부 프로세스를 실행하고 있습니다. 이 프로세스는 SQL 연결 개체를 사용하여 데이터베이스에서 데이터를 가져옵니다.이 개체는 다른 클래스에 있습니다. 어떻게 멀티 스레드를 사용하는 동안 SQL 연결을 동기화 할 수 있습니까?. NET에서 멀티 스레드에서 SQL 연결을 동기화

답변

2

필요한 각 장소에 새 연결을 만들면됩니다. 연결 풀링은 필요에 따라 실제 개의 연결 만 생성하도록 자동으로 보장합니다.

using(var conn = new SqlConnection("...")) 
{ 
    var cmd = new SqlCommand("...", conn); 
    ... 
} 
+0

정확히. 당신이 가면 생성하고 파괴하십시오. 다른 어떤 것 - 어떤 외부 이유 때문에 하나의 연결을 사용하는 것만 허용되는 것과 같이 매우 드문 특수한 계보를 제외하고 - 어리 석고 불필요하게 속도를 늦출 수 있습니다. – TomTom

1

가장 쉬운 방법은 당신은 아마 사방이 잠금을 중복 할 필요가 없습니다 수있는 방법을 찾을 수 있습니다

lock(sharedConnection_) 
{ 
    // do your operations here 
} 

... lock() 절에 작업을 마무리하는 것입니다. 어쨌든. 그렇게하면 두 스레드가 동일한 오브젝트에 동시에 잠금을 보유하지 않게됩니다.

당신이 할 수있는보다 정교한 것들이 있지만 이것이 좋은 출발점입니다.

관련 문제