Compartilhar via


Suporte Threading livre no seu provedor

Todas as classes de provedor OLE DB são thread-safe e entradas do registro estão definidas adequadamente.É uma boa idéia para oferecer suporte a segmentação livre para ajudar a fornecer um alto nível de desempenho em situações de multiusuário.Para ajudar a manter o seu provedor de thread-safe, verifique se seu código é bloqueado adequadamente.Sempre que você gravar ou armazena dados, você deve bloquear o acesso com seções críticas.

Cada objeto de modelo do provedor OLE DB tem sua própria seção crítica.Para tornar mais fácil de bloqueio, cada nova classe que você criar deve ser uma classe de modelo, levando a classe pai nome como um argumento.

O exemplo a seguir mostra como bloquear seu código:

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
}

Para obter mais informações sobre como proteger seções críticas com Lock e Unlock, consulte Multithreading: como usar as Classes de sincronização.

Você também deve verificar todos os métodos que você substituir (como Execute) são thread-safe.

Consulte também

Conceitos

Trabalhando com modelos do provedor OLE DB