다음을 통해 공유


공급자에서 자유 스레딩 지원

모든 OLE DB 공급자 클래스는 스레드로부터 안전하며 레지스트리 항목은 그에 따라 설정됩니다. 무료 스레딩을 지원하여 다중 사용자 상황에서 높은 수준의 성능을 제공하는 것이 좋습니다. 공급자 스레드를 안전하게 유지하려면 코드가 제대로 차단되었는지 확인해야 합니다. 데이터를 쓰거나 저장할 때마다 중요한 섹션을 사용하여 액세스를 차단해야 합니다.

각 OLE DB 공급자 템플릿 개체에는 고유한 중요 섹션이 있습니다. 차단을 더 쉽게 하려면 새로 만드는 각 클래스는 부모 클래스 이름을 인수로 사용하는 템플릿 클래스여야 합니다.

다음 예제에서는 코드를 차단하는 방법을 보여 줍니다.

template <class T>
class CMyObject<T> : public...

HRESULT MyObject::MyMethod(void)
{
   T* pT = (T*)this;      // this gets the parent class

// You don't need to do anything if you are only reading information

// If you want to write information, do the following:
   pT->Lock();         // engages critical section in the object
   ...;                // write whatever information you wish
   pT->Unlock();       // disengages the critical section
}

중요한 섹션 Lock Unlock을 보호하는 방법에 대한 자세한 내용은 다중 스레딩: 동기화 클래스를 사용하는 방법을 참조 하세요.

재정의하는 메서드(예: Execute)가 스레드로부터 안전한지 확인합니다.

참고 항목

OLE DB 공급자 템플릿을 사용하여 작업