Como suporte Threading livre no meu provedor?

Todos do provedor OLE DB classes são thread seguro e registrar entradas estão definidos em conformidade. É uma boa idéia para oferecer suporte a segmentação livre para melhorar o desempenho em situações de multiusuários. Para manter seu segmento provedor seguro, você deve garantir que seu código está bloqueado corretamente. Sempre que você gravar ou armazena dados, você deve bloquear o acesso com seções críticas.

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

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

modelo lt; classe t >
Classe CMyObject <T>: público...

HRESULT MyObject::MyMethod(void)
{
   T * pT = (T *);      / / Este Obtém a classe pai / / você não precisa fazer nada se você apenas estiver lendo informações

/ / Se você deseja escrever informações, faça o seguinte
   pT - > Lock();         / / se engaja seção crítica no objeto
   …;                  / / escrever qualquer informação que desejar
   pT - > Unlock();       / / desliga o crítico seção
}

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 garantir que quaisquer métodos que você substituir (como Execute) são thread-safe.

Index