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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Таймаут на запрос  (Прочитано 6108 раз)
majatu
Гость
« : Июнь 09, 2009, 12:00 »

Можно ли поставить таймаут на запрос? как это сделать?

while(query.next)
{
 таймаут
 ...
 дальнейшие операции
}
Записан
roman.ks
Гость
« Ответ #1 : Июнь 09, 2009, 16:37 »

QSemaphore sem(0);
sem.tryAcquire( 1, 2000 ); // Задержка на 2 сек
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #2 : Июнь 09, 2009, 17:35 »

ему не задержку надо.
А "time out"="время вышло"

Как я понял приведён псевдокод, да и то неудачно.

Т.е. нужно работать дальше если запрос не выполнился за положенное время.
majatu, я правильно понял?
Записан

Юра.
roman.ks
Гость
« Ответ #3 : Июнь 09, 2009, 17:47 »

В любом случае использовать либо mutex-ы, либо QTimer::singleShot.
Ну или я вопроса не понял
Записан
roman.ks
Гость
« Ответ #4 : Июнь 09, 2009, 17:50 »

Судя по псевдокоду требуется как раз что-то типа sleep-а
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #5 : Июнь 09, 2009, 20:15 »

Если действительно нужно что-то вроде слипа, то тогда курить в сторону QEventLoop (поиск по форуму поможет)
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
roman.ks
Гость
« Ответ #6 : Июнь 10, 2009, 09:40 »

На уровне операционки sleep работает как приостановка потока (Это я про виндоус, возможно в других ОС тоже самое). А как это вызвать из юзерспейса - неважно. Будь то мьютексы или что-то из QEventLoop-а или QThread::sleep  Главное, чтобы не while( true ) { do_nothing(); }
imho
Записан
roman.ks
Гость
« Ответ #7 : Июнь 10, 2009, 09:41 »

Кстати, больше поможет поиск не по форуму, а по исходникам. Благо в Qt они очень легко читаются.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #8 : Июнь 10, 2009, 13:11 »

sleep, мютексы и прочее приведут к замораживанию интерфейса, что не есть гуд. Противоположная ситуация с QEventLoop. Поиск по форуму как раз поможет, так как подобные темы уже неоднократно расжовывались.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
roman.ks
Гость
« Ответ #9 : Июнь 11, 2009, 10:24 »

А кто сказал, что данный цикл крутится в том же потоке, что и eventLoop? А если это так, то это плохая практика.  И вообще, чтобы лишних вопросов не возникало, надо уточнить задачу. Что имелось в виду под словом "таймаут"?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #10 : Июнь 11, 2009, 11:36 »

И вообще, чтобы лишних вопросов не возникало, надо уточнить задачу. Что имелось в виду под словом "таймаут"?

согласен. Ждем дополнений со стороны автора топика
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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