ODBC 類別和執行緒
從 MFC 4.2 開始,MFC ODBC 類別支援多線程。 不過請注意,MFC 不提供 DAO 類別的多線程支援。
ODBC 類別的多線程支援有一些限制。 由於這些類別會包裝 ODBC API,因此限製為建置元件的多線程支援。 例如,許多 ODBC 驅動程式不是安全線程;因此,如果您使用MFC ODBC 類別搭配下列其中一個驅動程式,則不會安全線程。 您應該確認您的特定驅動程式是否為安全線程。
建立多線程應用程式時,您應該非常小心使用多個線程來操作相同的物件。 例如,在兩個線程中使用相同 CRecordset
物件可能會導致擷取數據時發生問題;一個線程中的擷取作業可能會覆寫另一個線程中擷取的數據。 不同線程中 MFC ODBC 類別的較常見用法是跨線程共用開啟 CDatabase
的物件,以使用相同的 ODBC 連接,並在 CRecordset
每個線程中使用不同的物件。 請注意,您不應該將未開啟 CDatabase
的對象傳遞至另一個 CRecordset
線程中的物件。
注意
如果您必須有多個線程操作相同的物件,您應該實作適當的同步處理機制,例如重要區段。 請注意,某些作業,例如 Open
,不會受到保護。 您應該確定這些作業不會從個別線程同時呼叫。
如需建立多線程應用程式的詳細資訊,請參閱 多線程主題。