Что было бы хорошим способом решить следующую проблему в Qt:
У меня есть класс датчика, который непрерывно производит данные. С этими данными необходимо выполнить несколько операций за другой, что может занять довольно много времени. Для этого у меня есть несколько дополнительных занятий.По сути, каждый раз, когда записывается новый элемент данных, первый класс должен получать данные, обрабатывать их, передавать следующему и так далее.
сенсор -> класс 1 -> ... -> последний класс
Я хочу поместить отдельные классы конвейера в их собственные потоки, чтобы класс 1 уже мог работать с образцом n + 1 когда класс 2 обрабатывает образец n ...
Кроме того, поскольку отдельные шаги могут сильно отличаться по своей производительности (например, датчик работает намного быстрее остальных), и меня не интересуют устаревшие данные, мне нужен класс 1 (и все, что после него), чтобы всегда получать самые новые данные от своих предшественников, отбрасывая старые данные. Итак, нет большого буфера между этапами конвейера.
Сначала я подумал об использовании Qt :: QueuedConnections для сигналов / слотов, но я предполагаю, что это приведет к появлению очереди, полной устаревших образцов, ожидающих обработки более медленными частями конвейера?