ODBC 클래스와 스레드
MFC 4.2부터 MFC ODBC 클래스에 대한 다중 스레딩 지원이 있습니다. 그러나 MFC는 DAO 클래스에 대한 다중 스레딩 지원을 제공하지 않습니다.
ODBC 클래스에 대한 다중 스레딩 지원에는 몇 가지 제한 사항이 있습니다. 이러한 클래스는 ODBC API를 래핑하므로 빌드되는 구성 요소의 다중 스레딩 지원으로 제한됩니다. 예를 들어 많은 ODBC 드라이버는 스레드로부터 안전하지 않습니다. 따라서 이러한 드라이버 중 하나와 함께 사용하는 경우 MFC ODBC 클래스는 스레드로부터 안전하지 않습니다. 특정 드라이버가 스레드로부터 안전한지 확인해야 합니다.
다중 스레드 애플리케이션을 만들 때는 여러 스레드를 사용하여 동일한 개체를 조작하는 데 매우 주의해야 합니다. 예를 들어 두 스레드에서 동일한 CRecordset
개체를 사용하면 데이터를 검색할 때 문제가 발생할 수 있습니다. 한 스레드의 페치 작업은 다른 스레드에서 가져온 데이터를 덮어쓸 수 있습니다. 별도의 스레드에서 MFC ODBC 클래스를 사용하는 일반적인 방법은 스레드 간에 열린 CDatabase
개체를 공유하여 각 스레드에서 별도의 CRecordset
개체와 동일한 ODBC 연결을 사용하는 것입니다. 다른 스레드의 개체에 미개 CDatabase
봉 개체를 CRecordset
전달해서는 안 됩니다.
참고 항목
여러 스레드가 동일한 개체를 조작해야 하는 경우 중요한 섹션과 같은 적절한 동기화 메커니즘을 구현해야 합니다. 같은 Open
특정 작업은 보호되지 않습니다. 이러한 작업은 별도의 스레드에서 동시에 호출되지 않습니다.
다중 스레드 애플리케이션을 만드는 방법에 대한 자세한 내용은 다중 스레딩 항목을 참조 하세요.