Segmentos e Classes ODBC
A partir do MFC 4.2, há suporte a multithreading para as classes do MFC ODBC. No entanto, observe que MFC não oferece suporte a multithreading para as classes do DAO.
O suporte a multithreading para as classes ODBC tem algumas limitações. Porque essas classes encapsula a API de ODBC, são restritos para o suporte a multithreading dos componentes que são criados. Por exemplo, muitos drivers ODBC não são thread-safe; Portanto, as classes de ODBC do MFC não são thread-safe, se você usá-los com um desses drivers. Você deve verificar se o seu driver específico é thread-safe.
Ao criar um aplicativo multithread, seja muito cuidadoso usando vários segmentos para manipular o mesmo objeto. Por exemplo, usando o mesmo CRecordset o objeto em dois segmentos pode causar problemas ao recuperar dados; uma operação de busca em um thread pode sobrescrever os dados que buscada no segmento do. Um uso mais comum de classes MFC ODBC em segmentos separados é compartilhar uma abertura CDatabase objeto pelos threads para usar a mesma conexão ODBC, com um separado CRecordset o objeto em cada segmento. Observe que você não deve passar uma devolução CDatabase o objeto para um CRecordset o objeto em outro segmento.
Observação |
---|
Se você precisa ter vários segmentos que manipulam o mesmo objeto, você deve implementar mecanismos de sincronização apropriado, como, por exemplo, as seções críticas. Esteja ciente de que certas operações, como Abrir, não estão protegidos. Você deve certificar-se de que essas operações não serão chamadas simultaneamente em segmentos separados. |
Para obter mais informações sobre como criar aplicativos multithread, consulte Multithreading tópicos.