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.