Classes e threads ODBC
Iniciar com o MFC 4,2, não há suporte de multithreading para classes de MFC ODBC. Observe, entretanto, que a MFC não fornece suporte de multithreading para classes de DAO.
Suporte de multithreading para classes de ODBC tem algumas restrições. Como essas classes envolvem a API ODBC, são restritas ao suporte de multithreading de componentes em que são compiladas. Por exemplo, muitos drivers ODBC não é seguro para threads; em virtude disso, as classes de MFC ODBC não são seguras das se você usa com um desses drivers. Você deve verificar se o driver específico é thread-safe.
Ao criar um aplicativo multi-threaded, você deve ter muito cuidado ao usar vários threads para manipular o mesmo objeto. Por exemplo, usar o mesmo objeto de CRecordset em dois threads pode causar problemas ao recuperar dados; uma operação de busca em um thread pode substituir os dados buscados no outro thread. Uso mais comum das classes MFC ODBC threads separados é compartilhar um objeto aberto de CDatabase pelos threads para usar a mesma conexão ODBC, com um objeto separado de CRecordset em cada thread. Observe que você não deve passar um objeto fechado de CDatabase a um objeto de CRecordset em outro thread.
Dica
Se você deve ter vários threads manipular o mesmo objeto, você deve implementar os mecanismos adequados de sincronização, como seções críticos.Lembre-se de que determinadas operações, como Abrir, não são protegidas.Você deve ter a certeza de que essas operações não serão chamadas simultaneamente de threads separados.
Para obter mais informações sobre como criar aplicativos multithreaded, consulte Tópicos de multithreading.