Klasy i wątki ODBC
Począwszy od MFC 4.2, istnieje obsługa wielowątków dla klas MFC ODBC. Należy jednak pamiętać, że MFC nie zapewnia obsługi wielowątków dla klas DAO.
Obsługa wielowątkowości klas ODBC ma pewne ograniczenia. Ponieważ te klasy opakowują interfejs API ODBC, są one ograniczone do obsługi wielowątków składników, na których są tworzone. Na przykład wiele sterowników ODBC nie jest bezpiecznych wątkowo; dlatego klasy MFC ODBC nie są bezpieczne wątkowo, jeśli używasz ich z jednym z tych sterowników. Należy sprawdzić, czy dany sterownik jest bezpieczny wątkowo.
Podczas tworzenia aplikacji wielowątku należy bardzo ostrożnie używać wielu wątków do manipulowania tym samym obiektem. Na przykład użycie tego samego CRecordset
obiektu w dwóch wątkach może powodować problemy podczas pobierania danych; operacja pobierania w jednym wątku może zastąpić dane pobrane w drugim wątku. Bardziej typowym zastosowaniem klas MFC ODBC w osobnych wątkach jest udostępnianie otwartego CDatabase
obiektu między wątkami w celu używania tego samego połączenia ODBC z oddzielnym CRecordset
obiektem w każdym wątku. Należy pamiętać, że nie należy przekazywać nieotwartego CDatabase
obiektu do CRecordset
obiektu w innym wątku.
Uwaga
Jeśli musisz mieć wiele wątków manipulowania tym samym obiektem, należy zaimplementować odpowiednie mechanizmy synchronizacji, takie jak sekcje krytyczne. Należy pamiętać, że niektóre operacje, takie jak Open
, nie są chronione. Należy mieć pewność, że te operacje nie będą wywoływane współbieżnie z oddzielnych wątków.
Aby uzyskać więcej informacji na temat tworzenia aplikacji wielowątków, zobacz Tematy wielowątkowe.
Zobacz też
Open Database Connectivity (ODBC)
Programowanie dostępu do danych (MFC/ATL)