Sdílet prostřednictvím


Podpora modelu vláken typu Free ve vašem zprostředkovateli

Všechny třídy zprostředkovatele technologie OLE DB jsou bezpečné pro přístup z více vláken a položky registrů jsou nastaveny odpovídajícím způsobem.Je vhodné podporovat model vláken typu Free, který pomáhá zvýšit výkon ve víceuživatelských situacích.Chcete-li, aby váš zprostředkovatel zůstal bezpečný pro přístup z více vláken, musíte ověřit, zda je váš kód správně blokován.Kdykoliv zapisujete nebo ukládáte data, musíte blokovat přístup s kritickými oddíly.

Každá šablona objektu zprostředkovatele technologie OLE DB má své kritické oddíly.Chcete-li snažší blokování, měla by být každá nově Vámi vytvořená třída šablonovou třídou přijímanou nadřazený název třídy jako argument.

Následující příklad ukazuje, jak blokovat Váš kód:

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
}

Další informace o ochraně kritické sekce s Lock a Unlock, viz při souběžném: použití třídy synchronizace.

Musíte také ověřit, že jakékoli vámi přepsané metody (jako například Execute), jsou bezpečné pro přístup z více vláken.

Viz také

Koncepty

Práce s šablonami zprostředkovatele OLE DB