Слоты Qt - Отправитель / получатель с разными скоростями - предотвращает очередь данных - PullRequest
0 голосов
/ 31 мая 2018

У меня работают два довольно независимых потока.Один генерирует данные, а другой содержит некоторую логику дисплея.

Я передаю данные через некоторые

QMetaObject::invokeMethod(processor, "newData");

на стороне генератора.(процессор - это какой-то объект QObject, являющийся частью виджета).

Мой поток генерации данных может быть быстрее другого, и все становится довольно медленным.Отображение старых данных не имеет смысла в моем случае использования, поэтому я не хочу, чтобы вызовы invokeMethod стояли в очереди.Дальнейшие вызовы должны игнорироваться или - в лучшем случае - должен выполняться только последний вызов.

Как мне этого добиться?

1 Ответ

0 голосов
/ 31 мая 2018

Метод newData не должен делать ничего, кроме обновления записи данных, которая будет отображаться, с использованием контейнера с нулевой стоимостью копирования (неявно совместно используемого) и запроса обновления виджета.Обновление виджета должно затем взять самые последние данные и отобразить их.

...