Следующие функции и поля являются частью одного и того же класса в DLL-библиотеке Visual Studio. Данные постоянно читаются и обрабатываются с использованием функции run
в потоке. Тем не менее, getPoints
доступен в приложении Qt
на QTimer
. Я не хочу пропустить ни одного обработанного вектора, потому что кажется, что он может пропустить, приводя к скачкам данных. Какой самый безопасный способ получить очки за обновленную версию?
Если возможно, я бы хотел получить ответ, который использует стандартную библиотеку C ++, так как я изучал мьютексы, но, похоже, он все еще приводит к нестабильным данным.
vector<float> points;
// std::mutex ioMutex;
// function running on a thread
void run(){
while(running){
//ioMutex.lock()
vector<byte> data = ReadData()
points = processData(data);
//ioMutex.unlock()
}
}
vector<float> getPoints(){
return points;
}