MFC Grid manual

How to use synchronization objects?

// MyClass.h file

class CMyClass : public Dapfor::Common::CDataObject
{
public:
    double  GetPrice() const;
    void    SetPrice(double newPrice);

private:
    double  m_Price;
    
    mutable Dapfor::Common::CSyncObject m_Sync; //mutable because GetPrice() has const modifier
};



// MyClass.cpp file

double  CMyClass::GetPrice() const
{
    //Protect m_Price value
    Dapfor::Common::CLock lock(m_Sync);
    return m_Price;
}

void  CMyClass::SetPrice(double newPrice)
{
    //The brackets are necessary to send a notification without lock
    {
        //Protect m_Price value
        Dapfor::Common::CLock lock(m_Sync);
        m_Price = newPrice;
    }

    //Send a notification without lock.
    NotifyUpdate(FidPrice);
}