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