или наверно лучше не делать так, чтобы объект содержащий коллекцию значений что то знал о объекте, который его перебирает... Лучше, чтобы объект, перебирающий коллекцию сам каждые ~1мс в бесконечном цикле перебирал коллекцию, если она не нулевая. Как думаете?
Есть источник данных, который генерит поток со скоростью 5 Гбит/c (USB 3.0).
Скорость критична.
| Qt требует, что гуи жил только в главном потоке.
Об этом моменте я не подумал, но подразумевалось именно это)
| Бесконечно крутящийся цикл это последняя мера
Согласен. Это первое, что пришло в голову. после обдумывания решил сделать ссылку в контейнере (очереди) на поток, который ее просматривает, и при каждом добавлении дёргать поток (если он ещё не обрабатывает коллекцию) на обработку.
А можете попробовать у себя на машине запустить простой helloworld и поглядеть? может оно и не должно работать? может там специальный логгер есть для этого?
Antony: по идее, похоже на то, что после QApplication a(argc, argv); какой то краш происходит и дальше код не выполняется. Но окно программы открывается, значит выполнение доходит до w.show();, значит сообщения от qDebug были отправлены, но мне кажется, что QApplication a(argc, argv); что то делает с выводом, куда то его перенаправляет. т.е. все работает, но теперь выводится не туда
Я в коде 3 раза вызываю qDebug(), но выводится только тот, который первым вызывается в main(). Проблема как раз в том, что в остальных случаях и из другого кода он не работает, хотя когда дебаггером прохожусь, выполнение кода проходит и строки с qDebug()
DancingOnWater:
| в папке, где лежит бинарник либы не ищутся, потому бессмысленно их туда класть.
Вроде всегда либы ищутся либо в системном PATH либо по тому же пути, что и бинарник. Или я что то путаю. И вроде это как в Windows, так и в Linux принято на уровне ОС.
| Для справки: Qmake из pro-файла делает Make и дальше собирает по нему.
Вот это полезное знание, спасибо) кажется пора почитать книжку...