![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
dasV |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 2.2.2009 Пользователь №: 522 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Добрый день уважаемые. Я новичок в qt да и в c++ поэтому бейте меня и посылайте на RTFM.
Есть Вот такой код
Так вот он создает нагрузку на процессор, а если ожидание затягивается, то и вовсе становится неприятно что я такой вот пожиратель тактов. Можно ли справить ситуацию?? Сразу оговорюсь что программа консольная и в ней нет Q_OBJECT с вызовом QTimer::timeout () Да еще вопрос, к месту ли тут QCoreApplication::processEvents()??? С уважением |
|
|
kwisp |
![]()
Сообщение
#2
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
dasV,
что мешает включить в конольную прогу Q_OBJECT ??? и использовать для чтения сокета сигналы и слоты тогда можно. Цитата(dasV @ 13.3.2009, 17:47) Link к месту ли тут QCoreApplication::processEvents()??? точно нет в этой ситуации. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
dasV, цыклы лучше в отдельный поток помещать у них приоритет задать можно.
Цитата(kwisp @ 13.3.2009, 20:52) Link точно нет в этой ситуации. если человуку захочется программу закрыть, окно командной строки, то без этой строчки невыйдет.
|
|
|
LE0N |
![]()
Сообщение
#4
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
virtual bool waitForReadyRead ( int msecs = 30000 )
Как ты думаешь...А зачем там задан параметр msecs ? |
|
|
dasV |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 2.2.2009 Пользователь №: 522 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Хм, написал вот что
Результат работы MSG : Write GET //запрос и переход на ожидание ответа MSG : Wait response from server MSG : Time – 5598 // то есть мы ждали но дождались ответа **** Тут могла быть Ваша реклама**** MSG : Write GET // опять запрос и переход на ожидание ответа MSG : Time – 10 // фактически не ждали, сразу выдали таймаут MSG : Error CloseSession! //тут должен быть ответ, то есть некое число Но из за
В вызывающей функции числа нет, следна это не 0 а именно «string is null» Может я, что то не углядел? |
|
|
LE0N |
![]()
Сообщение
#6
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
QString QIODevice::errorString () const ?
Кто должен отлаживать, ты или МЫ? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(dasV @ 13.3.2009, 22:24) Link if(tmp.isNull ()==true) отвыкай от этой записи, сравнение с булевой константой излишне и некрасивоЦитата(dasV @ 13.3.2009, 22:24) Link следна это не 0 а именно «string is null» переменная tmp какого типа?
|
|
|
kwisp |
![]()
Сообщение
#8
|
![]() астарожна ынтжинэр ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(Litkevich Yuriy @ 13.3.2009, 17:56) Link если человуку захочется программу закрыть, окно командной строки, то без этой строчки невыйдет. там же таймаут вроде есть. должно по Ctrl-C завершиться. хотя если есть в программе корректный выход то его не заюзаешь. а так вообще не пояснено почему сигналы и слоты использовать нельзя.. почему??? Цитата(Litkevich Yuriy @ 13.3.2009, 20:24) Link переменная tmp какого типа? Цитата(dasV @ 13.3.2009, 19:24) Link tmp=ReadSocket(); Цитата(dasV @ 13.3.2009, 19:24) Link QString Sms_class::ReadSocket() QString получается. Сообщение отредактировал kwisp - 13.3.2009, 20:26 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#9
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Цитата(kwisp @ 13.3.2009, 23:24) Link должно по Ctrl-C завершиться если их будет кому обрабатывать.Цитата(kwisp @ 13.3.2009, 23:24) Link а так вообще не пояснено почему сигналы и слоты использовать нельзя.. согласен лучше сразу похорошему делать, потом работы будет меньше.
почему??? |
|
|
LE0N |
![]()
Сообщение
#10
|
Студент ![]() Группа: Участник Сообщений: 97 Регистрация: 10.3.2009 Из: Беларусь Пользователь №: 604 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата переменная tmp какого типа? Очевидно же - QByteArray )) Сообщение отредактировал LE0N - 13.3.2009, 21:29 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.8.2025, 15:12 |