Я хочу использовать InterlockedExchange из WinAPI, чтобы использовать синхронизацию потоков без блокировки.
На данный момент у меня есть такой класс.
struct DataExchange
{
volatile LONG m_value;
void SetValue(LONG newVal)
{
InterlockedExchange(&m_value, newVal);
}
LONG GetValue()
{
LONG workVal=0;
InterlockedExchange(&workVal, m_value);
return workVal;
}
};
Один поток может установить новое значение идругой поток может прочитать это значение.
Теперь я хочу изменить значение LONG
на struct
.Есть ли способ в WinAPI, как я могу бесплатно скопировать struct
блокировку?