Russian Qt Forum
Ноябрь 23, 2024, 08:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Ожидание данных в асинхронном режиме  (Прочитано 9879 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #15 : Июнь 17, 2014, 22:19 »

Не вижу проблемы. У меня был тупо QEventLoop c таймером в 500 мс. Если за 500 мс не пришёл ответ - следующий запрос, текущее устройство недоступно.
Спасибо!
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Bepec
Гость
« Ответ #16 : Июнь 18, 2014, 02:55 »

Как бы не за что, но это изврат на самом деле Веселый

Асинхронная передача с циклом, с таймером, превращаемая в синхронную Веселый

PS я пользуюсь Веселый
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #17 : Июнь 18, 2014, 19:52 »

Как бы не за что, но это изврат на самом деле Веселый
Асинхронная передача с циклом, с таймером, превращаемая в синхронную Веселый
Наоборот, мне понравилось. Я напомню - у меня два разных процесса, один пишет в БД, второй - читает то, что пишет первый. Первый дописал, дал сигнал. Второй по этому сигналу прочел данные и завершился. Предельное время ожидания задается таймером, для случаев, когда первый загнется.
Код:
    QEventLoop loop;
    QTimer::singleShot(500, &loop, SLOT(quit()));
    connect(this,SIGNAL(transComplete()), &loop,SLOT(quit()));
    loop.exec();
Все красиво, и, главное, просто. Правда, не знаю, можно ли сигналы Qt передавать между процессами linux. Но, думаю, это решается, если не так, то по-другому.

PS Кстати, вспомнил про Unix-сокеты (AF_UNIX).
« Последнее редактирование: Июнь 18, 2014, 20:02 от sergek » Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Bepec
Гость
« Ответ #18 : Июнь 18, 2014, 21:02 »

Передавать нельзя напрямую, но есть библиотеки на qt-project которые позволяют это делать даже через tcp Улыбающийся
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 22.