crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Http и потоки, Ищу исходники
bo0blik
  опции профиля:
сообщение 1.10.2009, 17:40
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 13.9.2009
Пользователь №: 1089

Спасибо сказали: 0 раз(а)




Репутация:   0  


Буду рад если кто-то поделится исходниками на эту тему, очень интересно посмотреть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
rnd
  опции профиля:
сообщение 7.10.2009, 13:30
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 54
Регистрация: 22.7.2009
Пользователь №: 930

Спасибо сказали: 1 раз(а)




Репутация:   0  


Ну смотри, допустим в очереди лежит два сообщения - на вызов Class1::slot1 и Class1::slot2. Вызывается slot1() - объект переходит в несогласованное состояние. Начинаем прокачку сообщений - сразу вызыватеся slot2, т.е. колл-стек такой:

----------------
slot2()
...
slot1()
...
-----------------

Поскольку объект в несогласованном состоянии (выполнение slot1 еще не закончилось) - ахтунг!

Цитата(BRE @ 7.10.2009, 14:22) *
Зря, что не стал.

За это не платят:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 7.10.2009, 13:51
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(rnd @ 7.10.2009, 14:30) *
Ну смотри, допустим в очереди лежит два сообщения - на вызов Class1::slot1 и Class1::slot2. Вызывается slot1() - объект переходит в несогласованное состояние. Начинаем прокачку сообщений - сразу вызыватеся slot2, т.е. колл-стек такой:

Мне лучше на примере кода показать.
Откуда взялись сообщения, кто их туда положил? Вообще, как ты себе все это представляешь.

Продублирую сообщение. Вот примерный код двух разных потоков. Что бы разговор был более предметным.

Ты считаешь, что при таком коде ненужные слоты вызываться не будут:
void Thread::run()
{
    QNetworkAccessManager manager;
    connect( &manager, SIGNAL( finished(QNetworkReply*) ), SLOT( replyFinished(QNetworkReply*) ) );
    manager.get( QNetworkRequest( QUrl("http://qtsoftware.com") ) );

    exec();
}


а при таком будут?
void Thread::run()
{
    QEventLoop loop;
    QNetworkAccessManager manager;
    connect( &manager, SIGNAL( finished(QNetworkReply*) ), &loop, SLOT( quit() ) );
    manager.get( QNetworkRequest( QUrl("http://qtsoftware.com") ) );
    loop.exec();
    // обработка ответа...
}


Где и какие ненужные сообщения/сигналы/слоты будут вызываться?


Сообщение отредактировал BRE - 7.10.2009, 13:37
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- bo0blik   Http и потоки   1.10.2009, 17:40
- - ViGOur   А что именно интересует? В том, чтобы самому писат...   1.10.2009, 20:32
- - bo0blik   Я просто из тех людей которые пока не увидят код, ...   1.10.2009, 20:48
- - Elfinit   Вот примерчик. Набор классов для выполнения разных...   1.10.2009, 21:52
- - bo0blik   Elfinit, спасибо большое, про http я уже доскональ...   2.10.2009, 4:43
|- - Elfinit   Цитата(bo0blik @ 2.10.2009, 5:43) Elfinit...   2.10.2009, 22:49
- - rnd   сегодня тоже провозился пол-дня. Пытался сделать и...   6.10.2009, 20:36
|- - BRE   Цитата(rnd @ 6.10.2009, 21:36) сегодня то...   6.10.2009, 21:12
|- - BRE   Для того, что бы сделать работу QHttp синхронной, ...   7.10.2009, 8:32
- - rnd   BRE, то, что вы предлагаете - очень опасная практ...   7.10.2009, 12:57
|- - BRE   Цитата(rnd @ 7.10.2009, 13:57) BRE, то, ...   7.10.2009, 13:03
- - rnd   Цитата(BRE @ 7.10.2009, 14:03) Как ты себ...   7.10.2009, 13:18
|- - BRE   Цитата(rnd @ 7.10.2009, 14:18) В смысле к...   7.10.2009, 13:29
- - rnd   Ну смотри, допустим в очереди лежит два сообщения ...   7.10.2009, 13:30
|- - BRE   Цитата(rnd @ 7.10.2009, 14:30) Ну смотри,...   7.10.2009, 13:51
- - rnd   Давай отвлечемся от QNetworkAccessNanager - он тут...   7.10.2009, 21:33
|- - BRE   Тебе не кажется, что это немного надуманный пример...   7.10.2009, 22:09
- - rnd   Надуманный? Это крайне упрощенный пример. Мне сло...   8.10.2009, 8:54
- - BRE   Цитата(rnd @ 8.10.2009, 9:54) Мне сложно ...   8.10.2009, 9:12


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 11:43