Třídy a vlákna rozhraní ODBC
Počínaje knihovnou MFC 4.2 zde není podpora multithreading pro třídy knihovny MFC rozhraní ODBC. Upozorňujeme však, že knihovna MFC nepodporuje multithreading pro třídy rozhraní DAO.
Podpora multithreading pro třídy rozhraní ODBC má některá omezení. Vzhledem k tomu, že tyto třídy zabalí rozhraní API ODBC, jsou omezeny na podporu multithreading komponent, na kterých jsou postaveny. Kupříkladu mnoho ovladačů rozhraní ODBC nejsou bezpečné pro přístup z více vláken; proto nejsou třídy knihovny MFC rozhraní ODBC bezpečné pro přístup z více vláken, pokud je používáte s jedním z těchto ovladačů. Měli byste ověřit, zda je konkrétní ovladač bezpečný pro přístup z více vláken.
Při vytváření aplikace s více vlákny byste měli být velmi opatrní při použití více vláken pro manipulaci se stejným objektem. Například použití stejného objektu CRecordset ve dvou vláknech může způsobit potíže při načítání dat, operace načtení v jednom vlákně může přepsat data načtená do jiného vlákna. Běžnější použití tříd knihovny MFC rozhraní ODBC v oddělených vláknech je sdílení otevřeného objektu CDatabase přes více vláken k použití stejného připojení rozhraní ODBC, spolu se samostatným objektem CRecordset v každém vlákně. Všimněte si, že byste neměli poslat neotevřený objekt CDatabase na objekt CRecordset v jiném vlákně.
Poznámka
Jestliže potřebujete, aby více vláken pracovalo se stejným objektem, měli byste implementovat příslušné sinchronizační mechanismy, jako jsou například kritické části. Uvědomte si, že určité operace, jako je Open, nejsou chráněny. Měli byste si být jisti, že tyto operace nebudou volány souběžně z jednotlivých vláken.
Další informace o vytváření aplikací s více vlákny naleznete v tématu Multithreading Topics.